下列程序代码片段传回可以读取Members 数据表中所有的纪录的DataReader 对象:
当我们将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 循环来取得所有的数据,如下
程序所示:
上述程序代码片段利用Read 方法将数据取回后,再利用Item 集合以键值(Key)的方式取出
UserId 字段的数据,以及利用索引值(Index)取得使用者UserPwd 字段的数据;索引值是由0
开始计数,故第一个字段的索引值为0,依此类推。当数据读取完毕后Read 方法会传回False,
所以就跳出循环。
GetValue 方法
我们也可以使用GetValue 方法取得指定字段内的记录,这个方法和Item 属性很像;不过
GetValue 方法的参数只接收索引值,并不接收键值为参数。我们改用GetValue 取得所有字段
内的数据,如下程序所示:
|