ADO.NET_DataReader对象

原文地址: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 前进到下一条记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜晚回家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值