CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

.net中SQL查询数据量过大,分批填充dataset问题,请教如何分批填充,

楼主nenuphar(nenuphar)2006-07-04 20:39:44 在 .NET技术 / C# 提问

.net中SQL查询数据量过大,  
  造成页面访问超时,  
  请教如何分批填充dataset问题,?  
  或者是否还有其它解决方式.?  
  谢谢! 问题点数:20、回复次数:7Top

1 楼cic_wxf(我憎恨这个社会,但是不想报复这个社会)回复于 2006-07-04 21:53:02 得分 0

我觉得没有必要一次性将数据全部提取出来  
   
  可以有条件的读取把Top

2 楼fxqyyzg(海冬青)(昨夜西风凋碧树。独上高楼,望尽天涯路)回复于 2006-07-04 21:57:50 得分 0

作一个存储过程,每次只取你的DataGrid所要显示的那页Top

3 楼nenuphar(nenuphar)回复于 2006-07-05 08:45:28 得分 0

是用的存储过程取数.因为是要生成报表,一次最多的时候要取十万以上的数,  
  填充DATASET的时候就超时了,  
  不知道是不是可以填充时分次填充,  
  或者还有其它方法解决超时问题,  
  请多多指教,  
  谢谢Top

4 楼nenuphar(nenuphar)回复于 2006-07-05 15:58:52 得分 0

ji   ji   ji   jiTop

5 楼yiming0755()回复于 2006-07-05 16:31:51 得分 0

存储过程分页来解决:  
  首先3个变量要控制好:  
  1,每次读取的记录树n。  
  2,总页数,也就是总记录数/n。  
  3,要读的页码数。  
   
  这是一个简单的范例,用来对PUBS数据库中的jobs表进行分页读取,传入一个要读取的页码值和  
  每叶显示的记录数就OK了。至于怎样传入要读取的页码值,我的做法是:用总记录数/每页显示记录数,就算出了应该分多少页显示,然后根据这个算出的值动态创建N个LinkButton,在每个LinkButton里委托一个方法来读记录就OK了。  
   
  CREATE       PROCEDURE   sp_newProc  
   
  @pageInd   int,@pageNum   int  
  as  
  declare   @sql   nvarchar(4000)  
   
  set   @sql='select   top   '   +cast(   @pageNum   as   varchar)   +   '   *   from   jobs   where   job_id   not   in   (select   top   '   +   cast((@pageInd-1)*@pageNum   as   varchar)   +'   job_id   from   jobs)'  
   
  print   @sql  
  exec   (@sql)  
  GO  
   
  Top

6 楼yiming0755()回复于 2006-07-05 16:33:14 得分 0

@pageInd   是页码,@pageNum   是每页显示的记录数。Top

7 楼Amos629()回复于 2006-07-05 19:37:54 得分 0

up!!    
  支持yiming0755  
  我也是采用DataGrid分页来处理的Top

相关问题

关键词

得分解答快速导航

  • 帖主:nenuphar

相关链接

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

广告也精彩

反馈

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