asp.net大数据量分页

  在Repeater控件里,载入50000多条数据是,浏览器直接报出“System OutofMemoryException”,必须进行分页。在网上查了一下别人是如何解决这个问题的,主要有一下几种,但到目前为止我还一种都没有试过。

一、在分页控件上做文章

  事先规定每页显示的数据调试,先查出总的条数,计算出工共有多少页,容易计算出每页对应的数据编号的起始和结束位置。利用这两个值在每次点击分页控件的时候触发查询语句。

  具体参见csdn的贴子:http://bbs.csdn.net/topics/320155550。这种实现方法在论坛里有一些争议,但应该是可以实现我的功能要求的。

二、使用数据库的存储过程

  思路和第一种方法类似,只是是以存储过程的形式实现的。我至今还没有写过一个存储过程,因此对这个还不熟悉。存储过程其实就是一个数据库里的自定义的函数,输入特定的参数,执行特定功能。

  具体实现参考博客:http://www.cnblogs.com/fishtreeyu/archive/2011/01/01/1923808.html。这里最“用存储过程分页”介绍的比较详细,同时也介绍了第一种方法的核心,还有第三种方法。

 

三、临时表+ROW_NUMBER() OVER

  注:ROW_NUMBER() OVER (ORDER BY id desc)为SQL2005新增函数,表示取出每一列的行号,意味着该方法不能兼容,MSSQL SERVER 2000

  该函数在数据库查询中可以做的很灵活,可以学习一下:

  参考教程:http://database.51cto.com/art/201108/283399.htm

posted @ 2013-10-11 13:58  spuerdaddy  阅读(457)  评论(0编辑  收藏  举报