DataReader对象是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时DataReader对象还是一种非常节省资源的数据对象。
DataReader对象可通过Command对象的ExecuteReader方法从数据源中检索数据来创建。
DataReader属性
DataReader对象常用属性如下表所示:
FieldCount 只读,表示纪录中有多少字段
HasMoreResults 表示是否有多个结果,本属性和SQL Script 搭配使用。
HasMoreRows 只读,表示是否还有资料未读取
IsClosed 只读,表示DataReader 是否关闭
Item 只读,本对象是集合对象,以键值(Key)或索引值(Index)的方式取得纪录中某个字段的数据
RowFetchCount 用来设定一次取回多少笔记录,预设为值为1 笔
DataReader方法
DataReader对象常用方法如下表所示:
方法 说明
Close 将DataReader 对象关闭
GetDataTypeName 取得指定字段的数据型态
GetName 取得指定字段的字段名称
GetOrdinal 取得指定字段名称在纪录中的顺序
GetValue 取得指定字段的数据
GetValues 取得全部字段的数据
IsNull 用来判断字段内是否为Null 值
NextResult 用来和SQL Script 搭配使用,表示取得下一个结果
Read 让DataReader 读取下一笔记录,如果有读到数据则传回True,若没有纪录则传回False
示例:
//连接数据库
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=db_showHouse";
//打开连接
conn.Open();
SqlCommandcmd = new SqlCommand("select User_names from tb_User", conn);
SqlDataReader drNew = cmd.ExecuteReader();
if (drNew.HasRows)
{
while (drNew.Read())
{
MessageBox.Show(drNew[0].ToString());
}
}
drNew.Close();