首先,我认为ADO.NET是一个很有用的组件,如果继续得到改进和增强,我想该插件会被更多开发者使用。对于ADO.NET功能的学习,对于我们掌握怎样正确创建ADO.NET是很有帮助的,而且也可从中学到不少编程技巧,例如委托和模板方法。希望大家一起研究下
我们就可以在执行Execute 方法时传入一个DataReader 型态的变量来接收。ADO.NET功能很单纯的一次只读取一笔纪录,而且只能只读,所以效率很好而且可以降低网络负载。由于Command对象自动会产生DataReader 对象,所以我们只要宣告一个指到DataReader 对象的变量来接收即可,并不需要使用New 运算子来产生;另外要注意的是 DataReader 对象只能配合ADO.NET功能使用 ,而且DataReader 对象在操作的时候Connection 对象是保持联机的状态。
下列程序代码片段传回可以读取Members 数据表中所有的纪录的DataReader 对象:
- Dim cmA As ADOCommand= New ADOCommand("命令字符串","
- Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Inetpub\wwwroot\cr\ch05\MyWeb.mdb")
- Dim drA as ADODataReader cmA.ActiveConnection.Open() cmA.CommandText="Select * From Members" cmA.Execute(drA)
上述程序代码片段利用Read 方法将数据取回后,再利用Item 集合以键值(Key)的方式取出 UserId 字段的数据,以及利用索引值(Index)取得使用者UserPwd 字段的数据;索引值是由0 开始计数,故***个字段的索引值为0,依此类推。#t#
当数据读取完毕后Read 方法会传回False, 所以就跳出循环。 GetValue 方法我们也可以使用GetValue 方法取得指定字段内的记录,ADO.NET功能这个方法和Item 属性很像;不过 GetValue 方法的参数只接收索引值,并不接收键值为参数。
在ADO中,以上所有这些方式与不同类型的游标相对应 .在文中,你将会发现,ADO.NET功能虽然与ADO不同,但它具备了ADO的所有功能.相对照来说,你的代码将从实际的数据源及其物理存储媒介和格式中抽取数据。