DataReader和DataSet的区别

使用DataSet是为了实现应用程序的下述功能:

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

在应用程序需要以下功能时使用DataReader:

1  不需要缓冲数据。    2 正在处理的结果集太大而不能全部放入内存中。    3 需要迅速一次性访问数据,采用只向前的只读的方式

DateSet是通过适配器DataAdapter把数据从数据库中拿出来,放在内存中的一张表,通过操作他来操作数据库,可以实现所有操作。而DataReader是只读的,不可逆的,如果只是要显示数据,那就用他,节省系统资源。

如果一次性读取的数据量较大建议使用DataSet,DataSet读取之后占的是内存空间,但是现在一般的电脑都有1G以上的内存,所以这点内存算不了什么。完全可以忽略。如果使用DataReader可能会导致网站读取数据的时候 出现假死现象。(千条以上)

如果是少量数据 建议使用DataReader,读取速度较快。让用户体验的舒服些。

1.DataReader用于读取只进、只读的数据 其对象的Read()方法是每次只读取一行数据的 所以这个特点适合ListView控件 2.如果你用的是DataGridView控件 那就用DataSet 速度快而且代码量也少

datareader是在线操作数据库,且每次只能加载一条数据.所以占用内存是很小的. dataset是离线操作数据库,是将数据全部加载在内容中,所以比较消耗内存。

DataReader 从数据库中检索只读、游标向前的数据流,Dataset可写并且数据可以指定到任意记录行

时间: 2024-11-28 16:52:59

DataReader和DataSet的区别的相关文章

DataReader 和 DataSet 的区别

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

C# 之 DataReader 和 DataSet 的区别

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

DataReader和DataSet区别

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

DataReader和DataSet的异同之处。

ADO.NET2.0提供了两个用于检索关系数据的对象:DataSet和DataReader.并且这两个对象都可以将检索的关系数据存储在内存中.在软件开发过程中经常用到这两个控件,由于这两个控件在使用和功能方面的相似,很多程序员错误地认为DataSet和DataReader是可以相互替代的.这种想法是错误的,在这我们分析一下DataSet控件和DataReader控件的区别. ■ 与数据库连接DatSet 连接数据库时是非面向连接的.把表全部读到Sql中的缓冲池,并断开于数据库的连接.Datare

Spark RDD、DataFrame和DataSet的区别

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 转载请标明出处:小帆的帆的专栏 RDD 优点: 编译时类型安全 编译时就能检查出类型错误 面向对象的编程风格 直接通过类名点的方式来操作数据 缺点: 序列化和反序列化的性能开销 无论是集群间的通信, 还是IO操作都需要对对象的结构和数据进行序列化和反序列化. GC的性能开销 频繁的创建和销毁对象, 势必会增加GC import org.apache.spark.sql.SQLContext import org.apache

RDD、DataFrame和DataSet的区别

原文链接:http://www.jianshu.com/p/c0181667daa0 RDD.DataFrame和DataSet是容易产生混淆的概念,必须对其相互之间对比,才可以知道其中异同. RDD和DataFrame RDD-DataFrame 上图直观地体现了DataFrame和RDD的区别.左侧的RDD[Person]虽然以Person为类型参数,但Spark框架本身不了解Person类的内部结构.而右侧的DataFrame却提供了详细的结构信息,使得Spark SQL可以清楚地知道该数

DataReader和DataSet的异同

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

sparkSQL中RDD——DataFrame——DataSet的区别

spark中RDD.DataFrame.DataSet都是spark的数据集合抽象,RDD针对的是一个个对象,但是DF与DS中针对的是一个个Row RDD 优点: 编译时类型安全 编译时就能检查出类型错误 面向对象的编程风格 直接通过类名点的方式来操作数据 缺点: 序列化和反序列化的性能开销 无论是集群间的通信,还是IO操作都需要对对象的结构和数据进行序列化和反序列化 GC的性能开销,频繁的创建和销毁对象,势必会增加GC开销 DataFrameDataFrame引入了schema和off-hea

datatable和dataset的区别

DataSet 是离线的数据源 DataTable 是数据源中的表.当然也可以自己建一张虚表.插入数据库中 DataSet是DataTable的容器DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTabledatatable是dataset中的一个表另外datarow是datatable中的一行记录