- 精品下载 | 实用查询 | 词典查询 | 桌面壁纸 | 网址 | 笑话 | FLASH频道 | 天气文章资讯 | 站长工具 | 证件办理 | 闪字生成 | 广告代码 | 在线手册 | 有问必答
您现在的位置: 蓝派网 >> 文章中心 >> 网络编程 >> ASP >> 正文
站内文章搜索:           

用数组方法显示数据库中数据

作者:佚名    文章来源:网络    更新时间 :2007-5-30 15:27:14
用数组方法显示数据库中数据

首先,我们先要说说为什么要用数组显示数据,让我用一个简单的例子来说明:
先让我们看看传统的方法:
<%
' 打开数据库
Do While Not rs.eof
    city=rs("city")
    st=rs("state")
    zip=rs("zip")
    rs.movenext
LOOP
' 关闭数据库
%>
假设数据库中有2500条纪录和10个字段,那么用上面的方法就要向服务器发出

30000个请求:
25000 ---- 每个字段数据一次请求,10*2500共25000次
2500  ---- 每次rs.movenext一次请求,共2500条纪录,因此共2500次
2500  ---- 读取每一条纪录之前都要检测rs.eof,共2500条纪录,因此共2500次
这样一算,就是向服务器发出30000次请求

如果要是用数组呢?相信大家很容易就能理解:

myrs.getrows()

仅向服务器发出这一次请求,就把所有的数据都读了出来,并存在了一个有

2500*10=25000个元素的二维数组中,也就是说:1次请求代替了30000次。

通过这么一比较,我想没有人会说do while not myrecordset.eof ... loop方法

比数组方法显示纪录快,因此在我们编写asp程序时,我们要尽量用数组方法显示

纪录。


要将数据存入数组,就要用到recordset对象的getrows方法

首先,我们先介绍一下getrows的使用方法:

GetRows( [Rows], [Start] , [Fields])

把记录接收到一个二维数组之内。该数组自动创建。数组的第一个索引指明记录

的域;第二个索引标志该记录。Rows指明从记录集中接收多少条记录。缺省时接

收所有的记录。Start指明从记录集中何处开始接收记录,这里使用了书签。所以

如果想使用该参数,记录集必须支持书签功能。Fields是一个单独的域名或一个

域名数组,我们用它来限制在数组中接收哪些域。


实例:

<%
'连结数据库
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open server.mappath("test.mdb")

'在这里,我们假设我们有一个数据库,名为test.mdb,其中有一个test表
'我们的目的是将数据表中的所有数据输出,比较原始的方法也就是很多人都在用

的方法是do while not myrecordset.eof ... loop
'而这里我用的却不是这个方法,而是recordset的另一个方法,是先将表中的所

有纪录存在一个二维数组中,然后将他们显示,具体例子请看如下代码:

'创建recordset对象
set rs=server.createobject("adodb.recordset")
sql="select * from test order by id desc"
rs.open sql,conn,1,1

'将所有数据存入一个名为myarray的二维数组
myarray=rs.getrows()

'将这个二维数组显示,也就是显示出所有纪录
'rscont:表示第几条纪录
'rscolumn:表示第几个字段的内容
'ubound函数的使用方法请查阅vbscript参考手册
for rscount=0 to ubound(myarray,2)
for rscolumn=0 to ubound(myarray,1)
  response.write myarray(rscolumn,rscount)&"  "
next
response.write "
"
next
%>




  • 上一篇文章:
  • 下一篇文章:
  • 百度搜索: 用数组方法显示数据库中数据
  •  
    【相关文章:】
    没有相关文章

    发表评论】【打印此文】【关闭窗口】【点击数:
    ★好玩的休闲小游戏★
    网友评论:
    数据载入中,请稍后……