CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

DataSource用DataReader还是DataSet??

楼主longhorn008(菜鸟.net)2006-01-15 11:36:28 在 .NET技术 / ASP.NET 提问

SqlDataReader   dr=DataAccess.dataReader("select   *   from   blog_Category");  
  DropDownList1.DataSource=dr;      
  DropDownList1.DataTextField="cate_Name";  
  DropDownList1.DataBind();  
  ==================================  
  DataTable   dt=DataAccess.dataTable("select   *   from   blog_Category");  
  DropDownList1.DataSource=dt;  
  DropDownList1.DataTextField="cate_Name";  
  DropDownList1.DataBind();  
  =================================  
  哪个效率高?我感觉  
  返回整个DataReader   和   DataTable   没区别。后者返回返回放内存中,前者返回也放内存中???  
  =====================  
  或者说数据控件的DataSource用DataReader效率会不会高点???? 问题点数:30、回复次数:12Top

1 楼lnwuyaowei(风可以追我)回复于 2006-01-15 11:43:18 得分 5

DataReader高,只读向前。Top

2 楼lcy0604(长空)回复于 2006-01-15 12:00:01 得分 0

当然是datareader效率高!Top

3 楼beiouwolf(beiouwolf)回复于 2006-01-15 12:06:25 得分 5

只是读的情况下当然用DATAREADER  
  效率差太多了  
   
  你的数据库大概是小吧   如果数据量超过10000的话应该能很明显的感觉差别了Top

4 楼iuhxq(小灰)回复于 2006-01-15 12:15:57 得分 0

DataReader高Top

5 楼qhh389(秋风乱舞)回复于 2006-01-15 14:08:43 得分 0

DataReaderTop

6 楼bingbingcha(不思不归,不孟不E,原来是头大灰狼)回复于 2006-01-15 14:11:26 得分 5

两个都是可以的..  
   
  DR的优点是只向前访问,即访问一次后,就不能再次访问了..  
   
  DS优点是灵活,如果数据加载大了,和DR相比,性能是有损失的...  
   
  根据你的情况选择.Top

7 楼epaib(放下)回复于 2006-01-15 14:16:44 得分 5

数据少的话reader还是高啊.  
   
  datareader   和   dataset   各有利弊...有需求决定你的选择Top

8 楼hoowoo(专注ASP.NET 2.O)回复于 2006-01-15 15:54:52 得分 0

利用DataSet可以分页排序!Top

9 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-01-16 09:01:48 得分 5

数据量少的情况下:  
   
  DataReader:  
   
  占用内存少,占用数据库连接时间短  
   
  DataSet:  
  占用内存稍微多一点,占用数据库连接时间短一些  
   
   
  数据量大的情况下:  
   
  DataReader:  
   
  占用内存增加的不多,占用数据库连接时间明显增长  
   
  DataSet:  
  占用内存明显增多,占用数据库连接时间增加的不多  
   
   
  综合考虑,还是用DataTable的好。  
  数据量大的话,用分页显示的方法。Top

10 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-01-16 09:02:38 得分 0

另外我怀疑   DataTable是否会有缓存。Top

11 楼henryfan1(http://henryfan.cnblogs.com)回复于 2006-01-16 09:53:15 得分 5

如果单纯用于数据绑定显示,显然是DataReader效率.  
  对于DataReader:占用数据库连接时间明显增长这一说法不太正确.  
  因为Adapter.Fill   DataSet都是经过DataReader的。  
  如果想更高效率,你可以自己写绑定方法。因为键值访问DataReader比索引访问DataReader要慢.  
  Top

12 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-01-17 14:23:32 得分 0

请注意:  
   
  Adapter.Fill   DataSet     只是把数据写进内容就可以关闭连接了。  
   
  而直接用   DataReader   绑定控件的话,那就要等到控件的最后一行创建完成之后才可以关闭连接,如果你的控件比较复杂,比如用了很多的模版列、和复杂的计算,或者使很多跳的记录,那么不会增加数据库的连接时间嘛?Top

相关问题

  • 用DataSet还是DataReader好?
  • 运行期间修改DataSource->DataSET的值
  • 关于datareader和dataset的问题
  • 关于asp.net的对象:data adapter,dataset,datareader
  • repeater控件的dataSource可以是datareader吗??
  • datagrid问题:我想在datagrid中修改数据并保存到数据库中,datagrid的数据源选择datareader还是dataset好呢?
  • 在线等待:如何返回dataSource的dataSet,使之为TQuery?
  • 我怎么不能把datagrid的datasource转换成dataset?
  • ADO.NET中的DataSet和DataReader分别用在什么情况下
  • 关于 DataSet 和 DataReader 的使用条件和性能。

关键词

  • 数据库
  • 内存
  • 数据
  • 连接
  • 控件
  • datareader
  • 占用
  • dropdownlist1
  • 效率
  • dataset

得分解答快速导航

  • 帖主:longhorn008
  • lnwuyaowei
  • beiouwolf
  • bingbingcha
  • epaib
  • jyk
  • henryfan1

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo