Chinaunix首页 | 论坛 | 博客
  • 博客访问: 743710
  • 博文数量: 741
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:18
文章分类

全部博文(741)

文章存档

2011年(1)

2008年(740)

我的朋友

分类:

2008-09-18 11:32:34

当通过Connection和Command对象与数据库建立连接并交互后,要获取访问的结果有两种方法:通过Datareader对象从数据源中获取数据并进行处理和通过DataSet对象将数据放置在内存中进行处理.

DataReader只能用来访问数据源,它实际上就是一个流式的DataSet.它与DataSet对象的主要区别在于:

DataSet对象用来将检索数据库中数据的所有结果保存在内存中,实际上,其本身就相当一个数据源.这种离线数据源,对于一些简洁的工作,如修改数据源中的数据,转换数据格式等,,是相当有用的.但是如果需要从数据库中返回大量的数据,必将受到内存的限制,因为整个DataSet对象都被保存在内存中.

同时,如果此时有成千上万的用户同时访问这个数据库,可以想象,内存将会被过度使用,出现无法预料的问题.而DataReader对象每次只将返回结果中的一条记录保存至内存中,从而避免了使用大量内存,大大提高了性能.

必须注意的是:DataReader对象返回的结果仅仅是一个只读的,仅向前的数据流.

如果没有使用数据绑定,并且数据的更新都是都是通过手写的SQL语句或存储过程来实现的,那么可以考虑使用DataReader对象.DataReader对象的实现是通过创建一个数据库连接和一个在该连接上的Command对象,调用该Command的ExeceteReader方法来创建的.而使用DataSet,它就必须借助DataAdapter来实现与实际数据源之间的桥梁.实际使用中,个人认为DataReader和DataSet都可以使用,个人习惯就是了.

[@more@]

--------------------next---------------------

阅读(715) | 评论(0) | 转发(0) |
0

上一篇:实验

下一篇:企业文化的猴子实验

给主人留下些什么吧!~~