您的位置:首页 > 其它

ADO.NET常用对象详解之:DataReader对象

2008-09-25 11:06 309 查看
1.DataReader对象概述
DataReader对象只能对查询获得的数据集进行自上而下的访问,但效率很高。如果仅仅是访问数据的话,可以使用DataReader。但DataReader要求一直连接,所以将结果的一小部分先放在内存中,读完后再从数据库中读取一部分,相当于一个缓存机制。这对于查询结果百万级的情况来说,带来的好处是显而易见的。
DataReader对象有如下几个特点:
1.快速访问数据。由于DataReader对象是只进和只读的,所以开销相对较小,速度比DataSet快。
2.只进和只读。不能处理数据,只能显示数据。
3.自己管理连接。DataAdapter对象可以自动地打开和关闭连接,DataReader对象必须显式地打开和关闭连接。
4.使用较少地服务器资源。

2.创建DataReader对象
具体步骤:
(1)创建和打开数据库连接。
(2)创建一个Command对象。
(3)从Command对象中创建DataReader。
(4)执行ExecuteReader对象。
(5)使用DataReader对象。
(6)关闭DataReader对象。
(7)关闭Connection对象。




DataReader对象创建示例


DataReader对象使用示例


//打开Connection并创建Command


SqlConnection conn = new SqlConnection("data source=localhost;integrated security=true;initial catalog=pubs;");


conn.Open();


SqlCommand cmdAuthors = new SqlCommand("select * from Authors", conn);




//创建DataReader对象并读取数据


SqlDataReader dr;


dr = cmdAuthors.ExecuteReader();


while(dr.Read())






{


ListBox.Items.Add(dr["au_lname"]+","+dr["au_fname"]);


}




//关闭DataReader和Connection


dr.Close();


conn.Close();
当使用DataReader对象进行连接时,需要使用Try...Catch...Finally语句,这样可以确保若在某方面失败,连接将会关闭。否则,连接会无限期保持打开状态。




捕捉错误


try






{


conn.Open();


dr = cmdAuthors.ExecuteReader();


//使用DataReader中返回的数据


}


catch






{


//错误处理


}


finally






{


dr.Close();


conn.Close();


}
3.从DataReader读取数据
为每个记录调用Read方法:可以调用Read方法来访问DataRead对象中的一个记录,因为DataReader对象中的默认位置是在第一个记录的前面,所以必须在访问任何数据之前调用Read方法。当不再有可用记录时,Read方法就返回一个空值。




调用Read方法示例


while (dr.Read())






{


lbName.Text += dr["au_name"];


}
访问字段:可以通过顺序位置,名字或者调用适当的Get方法来访问一个字段,Get方法包括GetDateTime,GetDouble,GetInt32或GetString等。




调用Get方法来访问数据


dr.Read();


lbName.Text =dr.GetString(1) + "," +dr.GetString(2);




通过名字引用当前记录的数据字段


dr["au_fname"];
posted on 2006-09-04 20:11 头发乱了 阅读(535) 评论(0) 编辑 收藏 所属分类: ADO.NET
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: