DataSource用DataReader还是DataSet??
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 的使用条件和性能。




