| 废话少说,先看一段代码: 
'' Auhthor
'' http://www.xujiwei.cn/ '' 定义变量 
Dim conn,rs,data,recN,i 
'' 连接数据库 
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &_ 
    Server.MapPath("data.mdb") 
'' 获取记录集 
Set rs=conn.Execute("SELECT id,first,second FROM mytable") 
'' 获取数据数组 
data=rs.GetRows() 
'' 关闭记录集,释放对象 
rs.Close() 
Set rs=Nothing 
'' 获取记录数 
recN=UBound(data,2) 
'' 循环输出数据 
For i=0 To recN 
    '' 注意,数组下标从0开始 
    '' 显示数据库中数据 
    Response.Write("ID: "&data(0,i)&", First: "&data(1,i)&_ 
        ", Second: "&data(2,i)&"<br />") 
Next 
'' 关闭数据库连接,释放对象 
conn.Close() 
Set conn=Nothing 
% 之所以用数组,好处是能够较早的释放记录集对象,提高程序执行的效率和代码的清晰度.大家看这组代码时,可能对ubound函数不太清楚,特作一解释.UBOUND返回的是一维数组的最大下标,而不是元素个数。 比如:Dim Myarray(5),那么UBOUND(Myarray)返回的值是5,而不是6。 UBOUND也可以应用于二维数组。应用于二维数组时,它返回的是第一个下标的最大值。
 比如:Dim Myarray(6,3), 那么UBOUND(Myarray)返回的值是6,而不是7,更不是18(6*3=18)。 若要返回第二个下标的最大值,则使用:UBOUND(Myarray,2)。 与UBOUND相对应的是另外一个函数:LBOUND,它返回数组的最小下标。与UBOUND类似,LBOUND(Myarray,2)则返回数组MYARRAY的第二个下标的最小值。所以,准确地说,一维数组Myarray的元素个数为:UBOUND(Myarray)-LBOUND(Myarray)+1,而二维数组的元素个数则为: (UBOUND(Myarray)-LBOUND(Myarray)+1)*(UBOUND(Myarray,2)-LBOUND(Myarray,2)+1) |