CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

datagrid翻页的时候到底有没有再次查询数据库?

楼主MyNoName(阿呆)2006-03-17 17:30:44 在 .NET技术 / ASP.NET 提问

用asp.net的datagrid默认的翻页方案,翻页的时候,有没有再次连接到数据库?  
   
  如果是的话,默认的翻页方案真的是太糟糕了! 问题点数:20、回复次数:27Top

1 楼alison()回复于 2006-03-17 17:47:06 得分 0

肯定有,然后取指定页的数据Top

2 楼xuanyuanfeixue(轩辕飞雪)回复于 2006-03-18 09:42:59 得分 0

应该不会吧,传给datagrid只是数据源呀  
  况且它怎样去连接数据库啊  
  如果连接的话怎么知道你需要哪些数据呀Top

3 楼truecoffeefox(咖啡狐)回复于 2006-03-18 09:48:42 得分 0

没有啊,它是在离线的dataset里读取数据,这个时候数据库里有什么变化它不会呈现出来,除非你去刷新它的数据Top

4 楼youyuan1980(水云间)回复于 2006-03-18 10:42:33 得分 0

没有。因为已经推到了dt中了,不可能再读取数据库,就算是读也是读的dt中的内容。Top

5 楼boy_north(北方的豹子)回复于 2006-03-18 10:44:44 得分 0

肯定没有了Top

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

1、你要写翻页事件  
   
  2、在事件里你要执行   DataBind()函数,而且你还要再次负数据源。  
   
  你不做以上两件事情,你还能翻页吗?  
   
   
  是否连接数据库要看你是怎么处理   dt   的   ,dt放在session中,就不用再次访问数据库了,Top

7 楼jimu8130(火箭的未来在哪里?)回复于 2006-03-18 11:10:29 得分 0

你可以做个试验,页面中有个datagrid然后读取数据库数据到datagrid绑定,运行后查看其html页面,可以发现其中有个_viewstate后面跟着很多东西,其中就包括datagrid所绑定的数据源的数据。所以默认翻页是没有再次查询数据库,当然如果你主动查了就不算。  
  Top

8 楼xuanyuanfeixue(轩辕飞雪)回复于 2006-03-18 11:31:17 得分 0

我刚才说胡说了,不好意思^_^Top

9 楼xuanyuanfeixue(轩辕飞雪)回复于 2006-03-18 11:36:40 得分 0

我想两种都有可能  
  主要是看你是如何绑定它的数据源的了  
  如果用DataSet保存数据源应该就不用了  
  如果是每次从数据库读的话,肯定就是了Top

10 楼fanglibang(小久)回复于 2006-03-18 11:39:33 得分 0

肯定没有啊。。都把数据放入dataSet里了。Top

11 楼centralplains(中原大地)回复于 2006-04-03 09:11:43 得分 0

根据我的实验是再次连接数据库的,可以在翻页前断掉数据库,然后翻页,我实验过,他需要再次连接的.Top

12 楼boyd1985(波伊德乐园->http://www.boyd.cn)回复于 2006-04-03 09:16:18 得分 0

肯定没有Top

13 楼MyNoName(阿呆)回复于 2006-04-07 17:39:53 得分 0

真是众说纷纭哦!Top

14 楼sunzhong2003()回复于 2006-04-07 21:08:27 得分 0

数据量大时候,我觉得有必要一页一页取。ASPNETPAGE就是利用这种方式  
  Top

15 楼hchxxzx(NET?摸到一点门槛)回复于 2006-04-07 21:17:25 得分 0

当然有了.  
  想想看,dataSet在第一次求取的时候,它确实是把所有要分页的数据取出来了.但问题是在翻页的时候,也就是页面已经提交了,此时,上一个页面中所求取的dataSet,并不可能保持现状,为了显示数据,必须需要再次从数据库中提取数据进行填充,然后再绑定到控件中.  
  dataSet在这其中的作用,就是根据当前的页数,从若干数据中取出需要的部分数据对控件进行填充.  
  当然,我们可以通过一定的方式,达到不用再次从数据库中提取的目的,那就是把dataSet也存储在VIEWSTATE里,如此,在翻页后,从VIEWSTATE里面再次把dataSet复原回来,就不需要再次读取数据,但这样又带来一个很大的问题,即页面文件变得非常庞大,导致页面提交的速度变慢.  
  因此,最好的方式,是需要哪些数据,就取哪些数据,取出之后再进行填充.Top

16 楼Rail100(杀神之狙)(能忘掉结果,未能忘记遇上)回复于 2006-04-07 22:10:40 得分 0

数据量不大以及用户不多时,可以用默认的翻页。  
  否则用虚拟分页,每页的数据每次抓取。  
  传输大量数据会比每次查询数据库更慢,尽量不要用默认的翻页,适当使用缓存可以提高速度。Top

17 楼lindping(罗将神)回复于 2006-04-07 22:13:09 得分 10

真是惊讶,居然有这么多人认为   datagrid不用再取数据!  
  我很想骂你们一句白痴的,呵呵,忍不住啊。  
  1翻页回传的时候,你如果不重新取数据绑定到datagrid里,datagrid从哪里取得数据?从dataset取?dataset是内存变量,不是可以保持状态的控件,回传之后不重新定义赋值就没有了!Top

18 楼zhouheng123456(授之以鱼,不如授之以渔)回复于 2006-04-07 22:30:12 得分 0

把数据缓存起来.  
   
  分页的时候去读他.  
   
  当有insert操作时去更新这个缓存起来的数据..  
   
  明白?不明白继续问.  
   
  回答到你明白为止.Top

19 楼windbey(北风)回复于 2006-04-07 23:38:51 得分 0

比如说有     1KW       条记录,那怎么存在缓存或内存中啊。  
   
  即使是绑定数据源了,那不就是等价于死机吗Top

20 楼lindping(罗将神)回复于 2006-04-08 00:04:59 得分 0

缓存无非就是cache[]   或者定义静态或者applicationg[],但都是全局变量,多人同时访问就会出毛病。Top

21 楼puny(寒束)回复于 2006-04-08 07:16:16 得分 0

翻页的时候应该是要读数据库的,除非把整个数据源缓存起来,后面分页的时候再从缓存中取  
  这样子做相当不好  
  以前也我用datagrid分页都是存储分页,每次只返回当前页的数据;后来我觉得datagrid太笨重了,现在都是用table来手写存储分页(封装成控件),自己想怎么写就怎么写,用起来很舒服Top

22 楼flyinging(一路走来)回复于 2006-04-08 08:49:49 得分 0

看你的数据源是什么了,是datareader的话,会重新查询,dataset的话,刚不会重新连数据库Top

23 楼jonas20()回复于 2006-04-08 09:14:06 得分 0

看你的数据源是什么了,是datareader的话,会重新查询,dataset的话,刚不会重新连数据库  
  Top

24 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-04-08 12:45:33 得分 10

>>真是惊讶,居然有这么多人认为   datagrid不用再取数据!  
  >>我很想骂你们一句白痴的,呵呵,忍不住啊。  
  >>1翻页回传的时候,你如果不重新取数据绑定到datagrid里,datagrid从哪里取得数据?从dataset取?dataset是内存变量,不是可以保持状态的控件,回传之后不重新定义赋值就没有了!  
   
  严重同意!Top

25 楼dcj2006(无花果)回复于 2006-04-08 13:02:15 得分 0

这个问题就是在问:  
  今天天气很好,美女会不会爱我?Top

26 楼ying1234()回复于 2006-04-09 13:42:14 得分 0

当然不行了,你当是做winform程序啊。Top

27 楼MyNoName(阿呆)回复于 2006-04-25 16:57:39 得分 0

揭帖!Top

相关问题

  • 数据库查询!
  • 数据库查询
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询
  • 数据库查询
  • 查询数据库
  • 数据库查询
  • 数据库查询

关键词

  • 数据
  • 数据库
  • datagrid
  • 查询
  • 控件
  • 页面
  • 连接
  • 内存
  • 翻页
  • 分页

得分解答快速导航

  • 帖主:MyNoName
  • lindping
  • jyk

相关链接

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

广告也精彩

反馈

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