C# sqlDataReader区别Dataset
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相关推荐
- asp.net程序性能优化的七个方面
asp.net程序性能优化的七个方面 一.数据库操作 1.用完马上关闭数据库连接 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器 ...
- .NET中统一的存储过程调用方法(收藏)
摘要:在一个项目的开发中,经常会调用数据库中的存储过程.可是,几乎所有存储过程的调用都是同一个模式,主要区别就在于创建的每个参数类型.值等不一样.那么,能不能实现通过一个函数(或者类)调用所有的存储过 ...
- asp.net 性能优化细节
asp.net程序性能优化的七个方面 (转) 2007-12-27 04:57 一.数据库操作 转自: http://www.itimes.com.cn/blog/205/look.aspx 1.用完 ...
- ASP.NET比较常用技巧
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连 ...
- ASP.NET的常用技巧等
网络日志 2006/10/17 ASP.NET的常用技巧(转) ASP.NET的常用技巧 Asp.Net细节性问题技巧精萃 1.Asp.Net中几种相似的标记符号: < %=...%>&l ...
- datareader(Datareader对象的什么方法用于从查询结果中读取行)
DataReader和IDataReader的区别? IDataReader是一个接口,它规定了实现这个接口的具体类要提供哪些操作. 而具体的DataReader比如SQLDataReader和Ole ...
- Asp.NET中常用的一些优化性能的方法
ASP.NET 的缓存机制相比ASP有很大的改进,本文档除对常用优化方法进行总结介绍外,强调了如何使用ASP.NET的缓存来获得最佳性能. 1:不要使用不必要的session 和ASP中一样,在不必要 ...
- SqlHelper全攻略
1.获取SqlHelper.cs文件 >>可以到网上下载 >>用SqlHelper的源代码,自已创建一个.cs文件.代码如下: SqlHelper.cs //========= ...
- sqlhelper使用指南
摘自http://blog.csai.cn/user1/18042/archives/2006/9812.html By newstyle 发表于 2006-12-6 19:36:00 摘要:Dat ...
- .NET 数据访问架构指南(转)
Alex Mackman, Chris Brooks, Steve Busby, 和 Ed Jezierski 微软公司 2001年10月 概述:本文提供了在多层.NET应用程序中实施基于ADO.NE ...
最新文章
- 星云精准测试之用例魔方
- 页面是可以这样设计的
- Unhandled exception 0xC0000005: Access violation writing location
- python 节点_python在以太坊开发中节点和网络如何选择?
- (function($){...})(jQuery)是什么意思 ——jQuery插件
- #C语言#重定义问题
- 嵌套RecyclerView左右滑动替代自定义view
- dp P1103 书本整理 洛谷
- 【学习笔记】【C语言】循环结构-do while
- 汇编----正确区分LJMP、AJMP、SJMP、JMP跳转指令
- 【教3妹学算法-每日3题(2)】分割字符串的最大得分
- python实现:无刻度的一大一小水罐取水问题
- 【云计算服务平台调研】阿里云、腾讯云、华为云对比
- 如何建立有效的激励机制
- VDI虚拟桌面基础架构
- IBM Bluemix 中文公众版初体验
- 局域网三大攻击工具的攻击原理及其防范
- java数据爬取_java爬虫,爬取当当网数据
- Redis 6.0 新特性-多线程连环 13 问!
- python爬虫基础爬取猫眼电影
热门文章
- linux ubuntu 查看历史命令
- Leetcode之合并区间
- webpack全局安装和安装过程中碰见的一些坑(npm error)解决方案
- 二十一、Oracle学习笔记:编写函数和触发器
- LayaAir 屏幕适配-分辨率、对齐模式
- webapi 状态返回 php,让WebAPI 返回JSON格式的数据实例教程
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
- 阶段3 3.SpringMVC·_03.SpringMVC常用注解_6 CookieValue注解
- 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_18_注解_案例_简单的测试框架...
- 操作系统核心原理-4.线程原理(上):线程基础与线程同步