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

 

  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对象使用示例
//打开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方法就返回一个空值。

while (dr.Read())
{
    lbName.Text 
+= dr["au_name"];
}

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

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


dr["au_fname"];
posted on 2006-09-04 20:11 头发乱了 阅读(535) 评论(0)   编辑 收藏 所属分类: ADO.NET
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值