SqlDataReader是个数据读取器,向前不可后退、每次只读取一条。速度快,现代项目里面用它用得最多。 DataSet是个内存数据库,它与其它两个是根本不一样的。 SqlDataAdapter是个数据适配器,工作于DataSet和数据库之间,负责将数据从数据源读出来放在DataSet中,或将DataSet中的更改更新回数据库。 .性能。DataSet中的数据完全保存在内存中,所以会占用内存。但是通常情况下DataReader读出的数据实例化以后也是在内存中的,所以两者没有多大区别。但是,当数据量极大的情况下,使用DataSet时,不论是你分页还是不分页,它的效率之低,和SqlDataReader相比都是不可同日而语的,尤其是你在分页情况下,使用DataReader可以只读所需数据,网络流量可以很小,但是DataAdapter还是必须全部读出,网络流量你很难优化,除非你自己去深入控制。 2.方便。DataSet数据保存在内存中,可以用Adapter一次性填充,乍看方便不少,其实不然。由于dataset中的数据都是弱类型的,你用的时候不得不大量使用索引、强制类型转换、类型转换来完成读取任务,麻烦而且易错。从这方便来说,在读取数据时那么一点方便是不可取的。 3.离线。DataSet是离线的,数据读取后可以关闭数据库连接,但是DataReader则必须在使用数据的时候一直连接数据库。现在的项目中大多使用实体(Entity)来保存从DataReader中读取的数据,也能实现离线的目的,虽然麻烦一点,但是后期很方便使用。

转载于:https://www.cnblogs.com/bobo41/archive/2013/06/08/3127243.html

C# sqlDataReader区别Dataset相关推荐

  1. asp.net程序性能优化的七个方面

    asp.net程序性能优化的七个方面 一.数据库操作 1.用完马上关闭数据库连接 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器 ...

  2. .NET中统一的存储过程调用方法(收藏)

    摘要:在一个项目的开发中,经常会调用数据库中的存储过程.可是,几乎所有存储过程的调用都是同一个模式,主要区别就在于创建的每个参数类型.值等不一样.那么,能不能实现通过一个函数(或者类)调用所有的存储过 ...

  3. asp.net 性能优化细节

    asp.net程序性能优化的七个方面 (转) 2007-12-27 04:57 一.数据库操作 转自: http://www.itimes.com.cn/blog/205/look.aspx 1.用完 ...

  4. ASP.NET比较常用技巧

     1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连 ...

  5. ASP.NET的常用技巧等

    网络日志 2006/10/17 ASP.NET的常用技巧(转) ASP.NET的常用技巧 Asp.Net细节性问题技巧精萃 1.Asp.Net中几种相似的标记符号: < %=...%>&l ...

  6. datareader(Datareader对象的什么方法用于从查询结果中读取行)

    DataReader和IDataReader的区别? IDataReader是一个接口,它规定了实现这个接口的具体类要提供哪些操作. 而具体的DataReader比如SQLDataReader和Ole ...

  7. Asp.NET中常用的一些优化性能的方法

    ASP.NET 的缓存机制相比ASP有很大的改进,本文档除对常用优化方法进行总结介绍外,强调了如何使用ASP.NET的缓存来获得最佳性能. 1:不要使用不必要的session 和ASP中一样,在不必要 ...

  8. SqlHelper全攻略

    1.获取SqlHelper.cs文件 >>可以到网上下载 >>用SqlHelper的源代码,自已创建一个.cs文件.代码如下: SqlHelper.cs //========= ...

  9. sqlhelper使用指南

    摘自http://blog.csai.cn/user1/18042/archives/2006/9812.html By  newstyle 发表于 2006-12-6 19:36:00 摘要:Dat ...

  10. .NET 数据访问架构指南(转)

    Alex Mackman, Chris Brooks, Steve Busby, 和 Ed Jezierski 微软公司 2001年10月 概述:本文提供了在多层.NET应用程序中实施基于ADO.NE ...

最新文章

  1. 星云精准测试之用例魔方
  2. 页面是可以这样设计的
  3. Unhandled exception 0xC0000005: Access violation writing location
  4. python 节点_python在以太坊开发中节点和网络如何选择?
  5. (function($){...})(jQuery)是什么意思 ——jQuery插件
  6. #C语言#重定义问题
  7. 嵌套RecyclerView左右滑动替代自定义view
  8. dp P1103 书本整理 洛谷
  9. 【学习笔记】【C语言】循环结构-do while
  10. 汇编----正确区分LJMP、AJMP、SJMP、JMP跳转指令
  11. 【教3妹学算法-每日3题(2)】分割字符串的最大得分
  12. python实现:无刻度的一大一小水罐取水问题
  13. 【云计算服务平台调研】阿里云、腾讯云、华为云对比
  14. 如何建立有效的激励机制
  15. VDI虚拟桌面基础架构
  16. IBM Bluemix 中文公众版初体验
  17. 局域网三大攻击工具的攻击原理及其防范
  18. java数据爬取_java爬虫,爬取当当网数据
  19. Redis 6.0 新特性-多线程连环 13 问!
  20. python爬虫基础爬取猫眼电影

热门文章

  1. linux ubuntu 查看历史命令
  2. Leetcode之合并区间
  3. webpack全局安装和安装过程中碰见的一些坑(npm error)解决方案
  4. 二十一、Oracle学习笔记:编写函数和触发器
  5. LayaAir 屏幕适配-分辨率、对齐模式
  6. webapi 状态返回 php,让WebAPI 返回JSON格式的数据实例教程
  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
  8. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_6 CookieValue注解
  9. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_18_注解_案例_简单的测试框架...
  10. 操作系统核心原理-4.线程原理(上):线程基础与线程同步