您的位置:首页 > 其它

ADO.NET_DataReader对象

2010-03-31 11:19 253 查看
原文地址:http://www.dingos.cn/index.php?topic=1287.0

【DataReader对象】

DataReader对象用于检索只前向、只读流中的数据,可以快速有效访问数据。

要创建一个DataReader对象,可以调用Command对象的ExecuteReader方法(而不是构造函数)。Command的ExecuteReader中可以带些参数, 如只取单行记录, 只取架构信息等.

ataReader类的Read方法用来读取当前数据集中的每一行数据。只要可以读取数据,这个方法就将返回True;如果没有数据可以利用,那么它将返回False。

Read从缓冲区读取一行到内存中. 然后通过向它传递列名或序号, 就可以访问行的每一列,。为了实现最佳性能,DataReader提供了一系列方法,它们将使您能够访问其本机数据类型(GetDateTime、GetDouble、GetGuid、GetInt32 等)形式的列值。

使用DataReader对象的Read方法可从查询结果中获取行。使用DataReader对象的IsDBNull方法获取一个值,该值指示列中是否包含不存在的或缺少的值。

DataReader对Connection是独占使用, 故而每次使用后都应调用Close方法.

如果返回的是多个结果集, 可用NextResult方法访问.

用GetSchemaTable方法可检索当前结果集的架构信息, 返回DataTable对象, 其中ColumnName是属性名称, 列值为属性值.

利用DataReader对象依序读取数据表的所有数据行,其从程序如下:

while(DataReader.Read()){

}

【SqlDataReader对象】提供一种从 SQL Server 数据库读取行的只进流的方式。无法继承此类。

若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不要直接使用构造函数。

在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为 SqlDataReader 服务,对 SqlConnection 无法执行任何其他操作,只能将其关闭。除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。例如,在调用 Close 之前,无法检索输出参数。

SqlDataReader 的用户可能会看到在读取数据时另一进程或线程对结果集所做的更改。但是,确切的行为与执行时间有关。

当 SqlDataReader 关闭后,只能调用 IsClosed 和 RecordsAffected 属性。尽管当 SqlDataReader 存在时可以访问 RecordsAffected 属性,但是请始终在返回 RecordsAffected 的值之前调用 Close,以保证返回精确的值。

【SqlDataReader常用属性】

Connection
获取与 SqlDataReader 关联的 SqlConnection。

HasRows
获取一个值,该值指示 SqlDataReader 是否包含一行或多行。

【SqlDataReader常用方法】

Close()
关闭 SqlDataReader 对象。

Get×××()
获取指定列的对应数据类型形式的值。

NextResult()
当读取批处理 Transact-SQL 语句的结果时,使数据读取器前进到下一个结果。

Read()
使 SqlDataReader 前进到下一条记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: