与前面学习的数据提供程序中的其他组件不同,DataReader对象不能直接实例化,需要调用Command对象的ExecuteReader()方法的返回值。
使用DataReader对象读取数据的步骤如下:
(1)创建数据库链接Connection对象,可以选SQLConnection或者OLedbConnection。
(2)使用Connection对象的open方法打开数据库链接。
(3)创建Command对象,将查询保存在SQLCommand或者OledbCommand对象中。
(4)调用Command对象的ExecuteReader()方法,将数据读入DataReader对象中。
SqlDataReader reader=comm.ExecuteReader();
其中comm为Command对象。
注意:要使用SqlDataReader,必须调用SqlCommand对象的ExecuteReader()方法来创建,而不要直接使用构造函数。
(5)调用DataReader对象的Read()方法逐行读取数据。
此方法返回一个布尔值,如果读到一行记录,返回True,否则返回False。
(6)读取当前行的某列数据。读取数据有两种方法,一种是使用GetValue(i)方法获取值,参数“i”为列的索引,得到的值是Object类型,必须进行数据类型转换。示例如下:
string str=reader.GetValue(1).ToString();
其中GetValue(1)中的参数“1”表示第二列。也可以使用类似索引器的方式访问数据,语法为:
(数据类型)DataReader [i];或(数据类型)["列名"];
这种方法返回的值也是Object类型,需要进行拆箱操作,转换数据类型。
(7)关闭DataReader对象,调用该对象的Close()方法,代码如下:
reader.close();
(8)调用Connection对象的Close方法,关闭数据序链接。