废话少说,先看一段代码:
- '' 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) |