拼吾爱程序人生.Net编程Asp.Net Asp.net 通用大数据量级分页

1  /  1  页   1 跳转 查看:401

Asp.net 通用大数据量级分页

Asp.net 通用大数据量级分页

1.主题,Asp.net环境下,通用的数据分页(包括Oracle,SqlServer,DB2...)

    很久以前,就想做一个通用点的数据分页组件,但苦于一直没有充足的时间,所以迟迟没有实现(当然,主要是因为有一定的难度,要处理视图状态,回传事件,自绘等...),"十一"期间,陪女朋友去了躺"湘西",白天游山玩水,晚上无事,吃吃当地的夜宵,无聊之际,google了一把Oracle的数据分页,竟然没有一个完整的关于Asp.net + Oracle数据分页的例子,要不就是有版本问题,索性决定自己弄一个.

2.环境

    IDE;vs2008+asp.net2.0 or 3.0+Oracle9i

    Oracle测试数据;41万多条

    带宽;网通说是有2M的带宽,其实TNND只有100多KB

3.原理

    利用Oracle9i的RowNum获取我们想要的数据,如图3.1

Code


startRowIndex表示开始索引,maximumRows表示要获取的每页记录数目.

然后把分页后的数据绑定到ObjectDataSource组件,如下图


 附件: 您所在的用户组无法下载或查看附件   

4.效果


 附件: 您所在的用户组无法下载或查看附件



4.1 支持多排序,比如时间,比如身份证明号码等


 附件: 您所在的用户组无法下载或查看附件

4.2 41万多条数据

4.3 单条件查询,第一次用时1.547秒


 附件: 您所在的用户组无法下载或查看附件

4.4 第二次,用时1.515秒


 附件: 您所在的用户组无法下载或查看附件

第三次差不多,就不贴了.

4.5 看看不带条件的查询,一次把41万条数据全部查询出来使用的时间


 附件: 您所在的用户组无法下载或查看附件

可以看到,不带条件查询41万条数据,第一次用时1.265秒.


 附件: 您所在的用户组无法下载或查看附件

4.6 可以看到不带条件查询41万条数据,第二次用时1.156秒

4.7 可用SqlServer,或者Db2等数据库代替,只需要修改 图3.1获取数据的方法,其他地方不用动.



5.需要注意的地方

5.1 记得数据量上万时,一定要加索引,否则要等得"花谢花开".

5.2 ObjectDataSource的所有参数名称,一定要和绑定的方法参数名称,顺序一致.

5.3 能用缓存的,尽量用缓存

5.4 SqlServer的分页算法,就不说了,替换一下图3.1的方法就行

5.5 因为数据库文件实在太大,不方便下载,有兴趣的朋友自己弄一张表就OK,加上webconfig中的数据库连接配置

6.下载

测试Demo下载:
 附件: 您所在的用户组无法下载或查看附件






(文/wmj  出处/博客园)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

asp.net高级教程(一)---asp.net,还是asp ?
ASP.NET中怎样实现在线人数的显示
ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第七篇:闲话ASP.NET MVC
使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
用Asp.net + NHibernate开发网上书店(附源码)
ASP.NET上传文件到数据库
ASP.NET的安全漏洞
用ASP.NET开发Web服务的五则技巧
编写高性能Web应用程序的10个技巧
Attribute在.net编程中的应用(四)
 
 
平凡是让人不甘忍受的,但是平凡也许才是最真实的。
 
1  /  1  页   1 跳转

快速回复帖子

标题
禁用 URL 识别
禁用表情
禁用 Discuz!NT 代码
使用个人签名
  [完成后可按 Ctrl+Enter 无刷新发布]  

版权所有 拼吾爱程序人生 

Powered by Discuz!NT 2.1.202   Copyright © 2001-2008 Comsenz Inc. 鄂ICP备07500843号
返顶部