问一个小白的问题!

io135 2007-03-29 04:20:38
DataSet和DataReader的区别在那里呢?

书上说一个读完储存在内存中, 一个只能向前读?

那么如果只读取数据,而不修改数据,他们两个结果不是一样吗?反正向前读,它也要全部读完的!

同时这有带来一个问题, 比如像论坛的帖子,如果我们把一个版面全部把贴子都读出来的话, 实在没什么必要,人们通常查看的也只是前2,3页的几十个主题而已. 比如说像一个百度当红明星的贴吧, 动辄十几万个贴子. 而通常我们都读出来,不是浪费资源吗?

那么请问高手有什么办法能在数据库端分页呢?


...全文
252 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
fccvip 2007-04-07
  • 打赏
  • 举报
回复
啥是PM?
-----------------
Project Manager
fccvip 2007-04-07
  • 打赏
  • 举报
回复
DataSet 可以用“三维”来形容,多个表,表的数据行,数据行的列
DataReader可以用“二维”来形容,一个数据集,数据集的元数据

可能不是很贴切

maowenchang 2007-04-07
  • 打赏
  • 举报
回复
DataSet数据集,存在内存中.可以有多个数据表
DataReader 数据读取器,保持连接
io135 2007-04-07
  • 打赏
  • 举报
回复
啥是PM?
  • 打赏
  • 举报
回复
一旦内存接近无力内存极限了 --> 一旦内存接近物理内存极限了

因此,个人做个小软件玩玩可以尽情使用DataSet。对于大软件,比较复杂,听 PM 的指挥吧。
  • 打赏
  • 举报
回复
那么如果只读取数据,而不修改数据,他们两个结果不是一样吗?反正向前读,它也要全部读完的!
——————————————————————————————————————————
不是要领。

DataReader理论上一边读,一边丢弃,狗熊掰棒子,所以对内存占用很低。当你的应用程序并行服务很多人的时候,如果一旦内存接近无力内存极限了(例如还剩不到15%),事务处理速度方面的噩梦就要开始了。

不过不论DataSet还是 DataReader,都太低级。ADO.NET并没有提供一个很好的缓存服务。你应该自己去寻找。
  • 打赏
  • 举报
回复
asp.net的分页都是“贪婪”的。你可以自己写一个控件。
Cnaspnet 2007-03-29
  • 打赏
  • 举报
回复
而你说的着种分页方式,很多通过存储过程进行分页的例子来实现,可以网上搜索一下
tian123xxx 2007-03-29
  • 打赏
  • 举报
回复
搜索一下分页的存储过程,
会对你有帮助的
Cnaspnet 2007-03-29
  • 打赏
  • 举报
回复
DataSet 是段开式数据读去方法,它把一个数据集读去后记录在内存中,就不用反复的做读取数据库操作,一般从DataSet类中创建的对象用做DataTable类中创建的对象的容器.其实你可以把DataSet理解成数据库的一个表,只不过他在内存中.

DataReader是一个只向前的只读光标,与数据库实时连接。不能实例话,必须一直打开,读完必须关闭,不然将无法进行下一个数据库操作。
io135 2007-03-29
  • 打赏
  • 举报
回复
顶一下
io135 2007-03-29
  • 打赏
  • 举报
回复
我的意思就是说:

DataSet或者DataReader去数据库读取数据时, 是不是一下子一个表中的所有数据都取出来了, 但实际上,比如说论坛,通常人们只观看前面几十个贴子,如果一个表中有十万个贴子, 无疑造成浪费!

有没有办法, 让我们点选某一页的时候只读取在他范围之内的记录! 比如第二页,我们只读取50-100条记录!
北京的雾霾天 2007-03-29
  • 打赏
  • 举报
回复
到底在问什么啊?
lovehongyun 2007-03-29
  • 打赏
  • 举报
回复
DataSet -- 数据集,存在内存中.相当于一个数据库,里边可以有很多表..等等
可断开式连接..
DataReader -- 数据读取器,保持连接,速度快..

分页一般都是按需取数据,比如说想取第二页的数据就取第二页的数据!

希望我说的对你能有所帮助.
zjstccc 2007-03-29
  • 打赏
  • 举报
回复
select top [行数] * from [表名] where [主键] not in (select top [行数*页数] [主键] from [表名])

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧