如果我们利用Command 对象所执行的命令是有传回数据的Select 叙述,此时Command 对象会自动产生一个DataReader 对象。DataReader 是我们写ASP.NET 网页的好朋友,因为我们常常会将数据源的数据取出后显示给使用者,这时候我们就可以使用DataReader 对象。我们就可以在执行Execute 方法时传入一个DataReader 型态的变量来接收。
DataReader 对象很单纯的一次只读取一笔纪录,而且只能只读,所以效率很好而且可以降低网络负载。由于Command对象自动会产生DataReader 对象,所以我们只要宣告一个指到DataReader 对象的变量来接收即可,并不需要使用New 运算子来产生;另外要注意的是 DataReader 对象只能配合Command对象使用 ,而且DataReader 对象在操作的时候Connection 对象是保持联机的状态。#t#
在取得Command 对象执行Execute 方法所产生的DataReader 对象后,我们就可以将纪录中的数据取出使用。DataReader 一开始并没有取回任何数据,所以我们要先使用Read 方法让DataReader 先读取一笔数据回来。如果DataReader 对象成功取得数据则传回True,若没有取得资料则传回False。这样一来我们就可以利用Do While...Loop 循环来取得所有的数据,如下程序所示:
- Dim cmA As ADOCommand= New ADOCommand("命令字符串","Provider=Microsoft.Jet.OLEDB.4.0;"&
- "Data Source=C:\Inetpub\wwwroot\cr\ch05\MyWeb.mdb")
- Dim drA as ADODataReadercmA.ActiveConnection.Open()cmAcmA.CommandText="Select *
- From Members"cmA.Execute(drA)