Asp.net 通用万级数据分页代码[修正下载地址]
发布时间:2020-12-15 20:45:29 所属栏目:asp.Net 来源:网络整理
导读:1.主题,Asp.net环境下,通用的数据分页(包括Oracle,SqlServer,DB2...) 很久以前,就想做一个通用点的数据分页组件,但苦于一直没有充足的时间,所以迟迟没有实现(当然,主要是因为有一定的难度,要处理视图状态,回传事件,自绘等...),"十一"期间,陪女朋友去了躺"湘西
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 复制代码 代码如下: public IEnumerable GetPageSqlByOracle(string sql,int startRowIndex,int maximumRows,string orderBy) { string sqlFormat = string.Format("select * from (select rownum rn,pageTable.* from {0} pageTable where rownum <={1}) where rn>{2}",sql,startRowIndex + maximumRows,startRowIndex); return ydjwOracleConn.RetriveDataSet(sqlFormat).Tables[0].DefaultView; } 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下载 http://xiazai.aspzz.cn/200810/yuanma/TestDataBindControlls.rar 【已修正】 7.后话 该说的都说了,希望对大家能有所帮助启发,还有就是此测试Demo还没有加缓存,有兴趣的朋友可以加上,欢迎大家讨论,批评,指导... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 从ItemDataBound事件中的转发器控件中获取值
- Asp.net形成身份验证登录循环
- asp.net-mvc – 在MVC3中使用EditorFor的输入字段宽度
- asp.net-mvc – 添加ELMAH并更改elmah.mvc.route后,旧路由仍
- asp.net – 在IE10中不应该“X-UA兼容IE =边缘”头覆盖“兼
- 使用Classic ASP在XML文档中附加子项
- 单元测试传统ASP.NET Webforms应用程序
- asp.net – 具有2个不同域的mvc3路由
- 数组 – 如何在经典asp中拆分字符串
- asp.net – “HttpContext.Current.Session”vs Global.asa
推荐文章
站长推荐
- 如何在ASP.NET C#中获取网页源代码?
- asp.net-mvc – MVC 3 RTM allowHtml在使用FormC
- asp.net-mvc – 使用Asp.net Mvc缩略图
- asp.net – 在请求之间检索和持久化状态
- asp-classic – 如何使用Microsoft.XMLHTTP指定代
- 使用ASP.Net编辑表格 – Quick’n Dirty
- asp.net – 包中的文件排序 – 已知的库是什么?
- asp.net – 具有2个不同域的mvc3路由
- asp.net – 提供的URI方案’https’无效;预期’h
- asp.net – 在服务器端级别渲染javascript.好主意
热点阅读