ADO.NET技术--DataReader类介绍

时间:2021-04-16

  DataReader允许你以只进、只读流的方式每次读取一条SELECT命令返回的记录。这种方式有时候称为流水游标。使用DataReader是获得数据最简单的方式,不过它缺乏非连接的DataSet所具有的排序等功能。不过,DataReader提供了最快捷且毫无拖沓的数据访问。

  1.Read():将行游标前进倒流的下一行。在读取第一行记录前,也必须调用这个方法。(DataReader刚创建时,行游标在第一行之前)。当还有其他行时,Reader()方法返回true;如果已经是最后一行,则返回false。

  2.GetValue():返回当前行中指定序号的字段值。返回的数据类型是.NET中和数据源类型最相似的那一个。如果使用序号访问字段却不小心指定了不存在的序号,会得到IndexOutOfRangeException异常。可以使用DataReader的索引通过字段名称得到字段值(换句话说,myDataReader.GetValue(0)与myDataReader["NameofFirstField"]等效)。基于名称的查询更易读,单效率不高。

  3.GetValues():将当前行中的值保持到数组中。保存的记录数取决于你传递给该方法的数组的大小。可以使用DataReader.FieldCount属性确定一行记录的列数,并且如果想保存这些列数据的话,你可以利用这些信息来创建大小合适的数组。

  4.GetInt32()、GetChar()、GetDateTime()和GetXxx():这些方法返回当前行中指定序号的字段值,返回值的类型和方法名称中的一致。如果视图将返回结果赋给一个错误类型的变量,会得到一个InvalidCastException异常。还要注意这些方法不支持空数据类型。如果字段可以能包含空值,那么必须在调用这些方法前对其进行检查。把未转换的值(可以使用GetValue()方法通过位置或使用DataReader索引器通过名称获得)和常量DBNull.value进行比较以便检查是否为空值。

  5.NextResult():如果命令返回的DataReader包含多个行集,该方法将游标移动到下一个行集(刚好在第一行以前)。

  6.Close():关闭Reader。如果原命令执行一个带有输出参数的存储过程,该参数仅在Reader关闭后才可读。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章