DataReader和IDataReader的区别?

IDataReader是一个接口,它规定了实现这个接口的具体类要提供哪些操作。

而具体的DataReader比如SQLDataReader和OleDbDataReader则是针对SQL和ACCESS等不同数据库具体实现IDataReader接口的类。

如果你是在编写数据层代码,并且明确目前编写的SQL数据读写模块,那么就用SQLDataReader,如果你是在编写不针对具体数据库的数据层访问接口,那么应该用IDataReader。额

DataReader与DataSet有什么区别

DataSet提供一个内存中数据的关系表示形式,一整套包括一些表在内的数据(这些表包含数据、对数据进行排序并约束数据),以及表之间的关系。DataReader提供一个来自数据库的快速、仅向前、只读数据流。 当使用DataSet时,经常会利用DataAdapter(也可能是CommandBuilder)与数据源进行交互。当使用DataSet时,也可以利用DataView对DataSet中的数据应用排序和筛选。也可以从DataSet继承,创建强类型DataSet,用于将表、行和列作为强类型对象属性公开。 当设计应用程序时,要考虑应用程序所需功能的等级,以确定使用DataSet或者是DataReader。 要通过应用程序执行以下操作,就要使用DataSet: r 在结果的多个离散表之间进行导航。 r 操作来自多个数据源(例如,来自多个数据库、一个XML文件和一个电子表格的混合数据)的数据。 r 在各层之间交换数据或使用XML Web服务。与DataReader不同的是,DataSet能传递给远程客户端。 r 重用同样的记录集合,以便通过缓存获得性能改善(例如排序、搜索或筛选数据)。 r 每条记录都需要执行大量处理。对使用DataReader返回的每一行进行扩展处理会延长服务于DataReader的连接的必要时间,这影响了性能。 r 使用XML操作对数据进行操作,例如可扩展样式表语言转换(XSLT转换)或XPath查询。 对于下列情况,要在应用程序中使用DataReader: r 不需要缓存数据。 r 要处理的结果集太大,内存中放不下。 r 一旦需要以仅向前、只读方式快速访问数据。 注填充DataSet时,DataAdapter使用DataReader。因此,使用DataAdapter取代DataSet提升的性能表现为节省了DataSet占用内存和填充DataSet需要的循环。一般来说,此性能提升只是象征性的,因此,设计决策应以所需功能为基础。.datareader

不能离线处理,且是只读的向前的,不过速度明显会很快dataset可以存储数据库各种对象的,比如表触发器等,而datareader只能存储游标记录dataset可以更新回原来的数据库,

datareader不行;dataset可以forwordprevius

,而datareader只能fw;datareader类似一个只能向前的游标记录集dataset叫数据集!是ado.net相对与ado实现断开式数据库连接性的主要体现!datereader是一个客户端的只向前游标,两者的应用领域不同!读取数据后!如果要进行比较频繁的改动,可以使用dataset

,并且dataset也支持串行化,可与xslt结合!进行web开发!datareader则偏向于快速读取数据!针对数据量比较大的数据可能应用的更加频繁点!

2016-06-25

0

datareader(Datareader对象的什么方法用于从查询结果中读取行)相关推荐

  1. mysql怎么直接显示对象信息_对象保存进MySQL数据库,从MySQL中读取出对象信息的源码...

    数据库名:db_file_test 表名:obj 实体类: package com.bean; import java.io.Serializable; public class User imple ...

  2. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  3. math的向上取整_JavaScript数字向上取整:Math对象的ceil()方法

    1. 基本概念 Math对象的ceil()方法用于将它的参数向上舍入到最接近的整数,即它返回大于或等于该参数的最小整数.英文单词ceil的意思是"装天花板",这一含义可以很形象地表 ...

  4. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  5. contains方法 java_contains方法如何在Java项目中使用

    contains方法如何在Java项目中使用 发布时间:2020-11-30 15:24:20 来源:亿速云 阅读:88 作者:Leah contains方法如何在Java项目中使用?相信很多没有经验 ...

  6. [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

    请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. 刚开始复习js题还不太习惯 CSDN上看了一个帖子,说是牛客上的标答, ...

  7. 一个用于 Entity Framework 对象拷贝的方法

    此方法用于两个不同类型Entity Framework 对象相同名称属性之间的拷贝 public class EntityHelper { /// <summary> ///用" ...

  8. MySQL提供了以下三种方法用于获取数据库对象的元数据

    MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...

  9. asp.net中读取数据库中的数据可以使用DataReader和DataSet 2种方式(初学者望大家不要笑我)...

    在asp.net中,读取数据库中的数据可以使用DataReader和DataSet 2种方式, 两者的差异如下:     使用Dataset对象读取数据大致需要以下5个步骤:     (1)建立数据库 ...

最新文章

  1. 牛客小白月赛25 补题+题解[A-J]
  2. Error: Discrete value supplied to continuous scale
  3. 甘利俊一 | 信息几何法:理解深度神经网络学习机制的重要工具
  4. 2020 年 Node.js 开发者调查报告
  5. C语言中compile time assert的实现
  6. Android开源框架源码鉴赏:VirtualAPK
  7. leetcode 814. Binary Tree Pruning | 814. 二叉树剪枝(Java)
  8. plc和pc串口通讯接线_PC与PLC的串口通信及编程实现
  9. seleniuim面试题1
  10. 数据结构与算法之-----总览
  11. 程序员编程艺术第十六~第二十章:全排列,跳台阶,奇偶调序等问题
  12. t580 thinkpad_ThinkPad T580性能如何?联想ThinkPad T580商务本详细评测
  13. 7-2 两个有序链表序列的合并 (20分)
  14. sticky 失效问题
  15. 常用财务指标计算公式(信贷指标公式)
  16. 【PS功能学习】04:祖传抠图技法
  17. 【Python】统计数据标准差(总体标准差,样本标准差)
  18. 【RuoYi框架】RuoYi框架学习超简单案例 - 新闻管理系统(附源码)
  19. BERT预训练模型的使用
  20. 最新特效移动文字代码大全

热门文章

  1. 《软件设计师教程》第 1 章 计算机系统知识
  2. KSO-Could not load file or assembly ‘Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral
  3. linux开发板换内存,关于6410开发板Linux内存地址0Xc0008000的由来
  4. 北斗/GPS 精度因子DOP
  5. fastdfs简单封装
  6. linux恐怖的命令
  7. 视频教程-UE4 Unity FPS 安卓手游 和平战场 逆向设计开发-其他
  8. hbo流媒体地址大全_为什么HBO有这么多的流媒体服务?
  9. R语言绘制时间序列的自相关函数图:使用acf函数可视化时间序列数据的自相关系数图
  10. 2019阿里校招面试【前端】(四)他山之石