频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

ADO.NET DataReader对象简介

来源:blog.51cto.com 作者:weitamin… 出处:巧巧读书 2008-06-02 进入讨论组
下一页 1 2 

  DataReader 对象

  如果我们利用Command 对象所执行的命令是有传回数据的Select 叙述,此时Command 对象会自动产生一个DataReader 对象。DataReader 是我们写ASP.NET 网页的好朋友,因为我们常常会将数据源的数据取出后显示给使用者,这时候我们就可以使用DataReader 对象。我们就可以在执行Execute 方法时传入一个DataReader 型态的变量来接收。DataReader 对象很单纯的一次只读取一笔纪录,而且只能只读,所以效率很好而且可以降低网络负载。由于Command对象自动会产生DataReader 对象,所以我们只要宣告一个指到DataReader 对象的变量来接收即可,并不需要使用New 运算子来产生;另外要注意的是 DataReader 对象只能配合Command对象使用 ,而且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)

当我们将DataReader 对象传入Execute 方法后,就可以使用DataReader 对象来读取数据了。

以下为DataReader 常用的属性:

  属性                                        说明

 FieldCount                         只读,表示纪录中有多少字段

 HasMoreResults                     表示是否有多个结果,本属性和SQL Script 搭配使用。

 HasMoreRows                        只读,表示是否还有资料未读取

 IsClosed                           只读,表示DataReader 是否关闭

 Item                               只读,本对象是集合对象,以键值(Key)或索引值(Index)的方式取得纪录中某个字段的数据

 RowFetchCount                      用来设定一次取回多少笔记录,预设为值为1 笔

  了解DataReader 对象有什么属性后,我们就可以利用DataReader 所提供的方法来取回资料了。

下表为DataReader 常用的方法:

  方法                                          说明

 Close                                 将DataReader 对象关闭

 GetDataTypeName                       取得指定字段的数据型态

 GetName                               取得指定字段的字段名称

 GetOrdinal                                取得指定字段名称在纪录中的顺序

 GetValue                             取得指定字段的数据

 GetValues                                 取得全部字段的数据

 IsNull                                    用来判断字段内是否为Null 值

 NextResult                                用来和SQL Script 搭配使用,表示取得下一个结果

 Read                                  让DataReader 读取下一笔记录,如果有读到数据则传回True,若没有纪录则传回False

Read 方法

  在取得Command 对象执行Execute 方法所产生的DataReader 对象后,我们就可以将纪录中

的数据取出使用。DataReader 一开始并没有取回任何数据,所以我们要先使用Read 方法让

DataReader 先读取一笔数据回来。如果DataReader 对象成功取得数据则传回True,若没有取

得资料则传回False。这样一来我们就可以利用Do While...Loop 循环来取得所有的数据,如下

程序所示:

 

Do While drA.Read()

Response.Write("User Id: " & drA.Item("UserId") & ", Password: ")

Response.Write(drA.Item(1) & "<br>")

Loop

  上述程序代码片段利用Read 方法将数据取回后,再利用Item 集合以键值(Key)的方式取出

UserId 字段的数据,以及利用索引值(Index)取得使用者UserPwd 字段的数据;索引值是由0

开始计数,故第一个字段的索引值为0,依此类推。当数据读取完毕后Read 方法会传回False,

所以就跳出循环。

GetValue 方法

  我们也可以使用GetValue 方法取得指定字段内的记录,这个方法和Item 属性很像;不过

GetValue 方法的参数只接收索引值,并不接收键值为参数。我们改用GetValue 取得所有字段

内的数据,如下程序所示:

Do While drA.Read()

Response.Write("User Id: " & drA.GetValue(0) & ", Password: ")

Response.Write(drA.GetValue(1) & "<br>")

Loop

更多文章 更多内容请看ADO.NET实用技巧.NET移动与嵌入式技术.NET开发手册专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
较早的文章:.NET中的Parameters

较新的文章:SilverLight数据库访问示例
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章