DataReader和DataSet的异同之处。

ADO.NET2.0提供了两个用于检索关系数据的对象:DataSet和DataReader。并且这两个对象都可以将检索的关系数据存储在内存中。在软件开发过程中经常用到这两个控件,由于这两个控件在使用和功能方面的相似,很多程序员错误地认为DataSet和DataReader是可以相互替代的。这种想法是错误的,在这我们分析一下DataSet控件和DataReader控件的区别。
■    与数据库连接DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接。Datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。■    处理数据速度DataSet读取、处理速度较慢。DataReader读取、处理速度较快。■    更新数据库在对DataSet数据集中的数据进行更新后,可以把数据更新回原来的数据库。在对DataReader中的数据进行更新后,没有办法进行数据库更新。  ■    支持分页排序在DataSet中支持分页、动态排序等操作。在DataReader中没有分页、动态排序的功能。■     占用内存DataSet在 IIS 服务器上所使用的内存较多。DataReader在 IIS 服务器上所使用的内存较少。综上所述得出DataSet和DataReader有各自适用的场合。如果数据来源控件只是用来填入控件的清单成为其选项,或者数据绑定控件并不需要提供排序或分页功能的话,则应该使用 DataReader。反之,如果数据绑定控件需要提供排序或分页功能的话,则必须使用 DataSet,通过DataSet设置出来分页排序等页面面显示效果。
时间: 2024-10-10 10:45:08

DataReader和DataSet的异同之处。的相关文章

DataReader和DataSet的异同

DataReader:使用时始终占用SqlConnection,在线操作数据库:每次只在内存中加载一条数据,所以占用的内存是很小的:是只进的. 只读的. DataSet:则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即释放数据库连接SqlConnection(非连接模式) DataSet:将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行 回传更新操作(动态操作读入到内存的数据);

DataReader 和 DataSet 的区别

摘自:http://www.cnblogs.com/zhjjNo1/archive/2009/08/26/1554420.html 第一种解释 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection(俗称:非断开式连接),在线操作数据库时,任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.由于DataReader的特殊性和高性能,所以Dat

DataReader和DataSet区别

第一种解释 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection(俗称:非断开式连接),在线操作数据库时,任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.由于DataReader的特殊性和高性能,所以DataReader是只进的,你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中,抛弃数据库连接(俗称:断

DataRead和DataSet的异同

第一种解释 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection(俗称:非断开式连接),在线操作数据库时,任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.由于DataReader的特殊性和高性能,所以DataReader是只进的,你读了第一条后就不能再去读取第一条了.DataSet则是将数据一次性加载在内存中,抛弃数据库连接(俗称:断开

DataReader和DataSet的区别

使用DataSet是为了实现应用程序的下述功能: 1 操作结果中的多个分离的表.    2 操作来自多个源(例如来自多个数据库.XML文件和电子表格的混合数据)的数据.    3 在层之间交换数据或使用XML Web服务.与DataReader 不同,DataSet能被传递到远程客户端.    4 通过缓冲重复使用相同的行集合以提高性能(例如排序.搜索或过滤数据).    5 每行执行大量的处理.在使用DataReader返回的行上进行扩展处理将使连接存在的时间比必要的更长,从而降低效率.   

C# 之 DataReader 和 DataSet 的区别

1. 获取数据的方式[1]DataReader 为在线操作数据, DataReader会一直占用SqlConnection连接,在其获得数据过程中其它操作不可以再使用SqlConnection连接对象. 代码如下: while(datareader.read()) { .............. } dataview.datasource=datareader; dataview.databind(); [2]DataSet为离线操作数据,DataSet会将数据一次性读入内存,然后断开连接,这

tp6新特性 tp5与tp6异同之处

1 目录结构的异同 tp5核心框架是项目根目录thinkphp下 , tp6是vendor的topthink 2 安装方式不同,tp6仅能通过composer方式安装 3 类自动加载方式不同 tp6使用composer方式实现类自动加载, tp5 composer+自己实现了一套 4 tp6使用了php7严格模式 5 支持更多的PSR规范   https://learnku.com/docs/psr 6 组件的独立 ORM 模板引擎 7 中间件改进 TP6开始使用了管道模式来实现中间件,比起之前

i++和++i的异同之处

相同点: i++和++i都是变量自增1,都等价于i=i+1 如果i++,++i是一条单独的语句,两者没有任何区别 i++,++i的使用仅仅针对变量,5++,++5会报错,因为5不是变量 不同点; 如果i++,++i不是单独的语句,他们就有区别 i++:先运算后增1 int x=5; int y=x++; System.out.println("x="+x+",y="+y); //以上代码运行后输出结果为:x=6,y=5 ++i:先增1后运算 int x=5; int

java基础---HashMap和HashTable的异同之处

1:连个都实现了Map的接口,两者的底层数据结构相同,都是transient修饰的entry数组,transient修饰的变量不会序列化即不会持久化,序列化的过程中不会包含这个变量,这个变量的生命周期仅仅是在用户的调用过程中,不能持久化到内存磁盘中.这样便于一些敏感信息的保存 2:HashMap是不安全的,不能同步,不支持多线程并发,HashTable是安全的,有同步锁,但效率低. 3:HashMap从AbstractMap继承而来,HashTable是从Dictionary继承而来 4:Has