由于“bigfocus”同志一直对海量分页情有独钟,特别是长达半个多月都未对他的小小要求作出回应,自感觉十分愧疚,于是打算对曾经辉煌过的海量分页作出补充说明。

首先海量分页方法是本人在学习ASP.NET后,以ASP版的海量分页为基础,重新设计的东东,为的是在大记录量的情况下,尽量降低SQL的负荷。那时候还不懂什么叫MVC,也不懂缓存Dataset什么的,就知道Datareader()这种东西,拿着rs.Read()写C#版的ASP,显得特天真单纯。现在看来,海量分页在当时的情况下,确实为个人发展作出了应有的贡献,但随着对ASP.NET的理解的深入,海量分页也完成了它的使命,渐渐退出了历史舞台。

言归正传,海量分页的核心思想是“组合SQL语句,仅读取需要的记录”。我是用类似“select top N”这样的语句来取得数据的。这样带来的问题是,我得在逻辑层甚至表现层上写不少where和and这样的东西,代码杂乱缺乏美感,更糟糕的是,它难以写数据绑定(不是不能,只是很麻烦)。

下面的代码是一张翻页列表页的实现:

string sqlField = " ID,IndexID,Title,CreateDate";//字段
                string sqlFrom = " from UserV_Article";
                string sqlOrder = " order by isTop desc,ID desc";//排序
                string pageStr = Request["page"];//当前页数
                int pageSize = 15;//每页记录数

string sqlWhere = " ";//当有条件时为where
                string sqlAnd = " ";//当有条件时为and
                string sqlCondition = " ";//条件
                sqlWhere = " where";
                sqlAnd = " and";
                sqlCondition = " IndexID=" + Request["IndexID"] + " and isAuditing=1 and isDel=0 and CreateDate<'" + DateTime.Now.ToString() + "'";//

stackPage SP = new stackPage();
                int recordCount = SP.sRecordCount(sqlFrom, sqlWhere, sqlCondition);//得到总记录条数
                int pageCount = SP.sPageNum(pageSize, recordCount);//得到总页数
                int page = SP.sPageNow(pageStr, pageCount);//得到当前页号码
                int countNum = SP.sCountNum(pageSize, recordCount, page, pageCount);//得到当前页显示条数
                if (countNum==0)
                {
                    liMessage.Visible = true;
                }
                else
                {
                    SqlDataReader rsArticle = SP.sShowPage(sqlField, sqlFrom, sqlWhere, sqlAnd, sqlCondition, sqlOrder, page, recordCount, pageSize);//获得分页数据集
                    rptList.DataSource = rsArticle;
                    rptList.DataBind();
                    ViewState["pageCount"] = pageCount.ToString();
                }
主要功能是获得指定字段的记录集合,在前台生成页数。当时还不清楚如何写控件的属性,无奈的用ViewState传递页数的值,哈哈真是把人笑死了。

下面是海量分页示例代码的内容,示例代码压缩包下载地址是:点我下载。

使用方法:

1、下载了解压缩

2、www目录建立虚拟目录

3、data目录是MSSQL数据库文件,推荐使用SQL2000进行附加操作

4、配置一下web.config里的连接字符串

5、浏览的试试,如果有问题可以在这帖子下面留言提问

PS:看了示例代码希望大家不要笑我,这代码这年头看起来确实满恶心的,不过这都是我当年岁月的记载啊,特别是有朋友特别想看,我就发出来给大家瞄瞄~~~~~

处女座的人有着超级完美主义,特别是我这种代码洁癖型,对过去的代码都是超级否定的,极容易引起重构的冲动,于是在上面数落了半天海量翻页的各种弊端(虽然确实存在)。

如果大家有更好的办法进行分页什么的,欢迎一起讨论一下,嘿嘿嘿。

转载于:https://www.cnblogs.com/Tonyyang/archive/2008/02/22/1077136.html

关于海量分页的补充说明(转)相关推荐

  1. Windows保护模式学习笔记(七)—— PDEPTE

    Windows保护模式学习笔记(七)-- PDE&PTE Cr3 PDE(页目录表项) PTE(页表项) 物理页的属性 10-10-12分页的补充 实验1:证明PTE的特征1 第一步:选择一个 ...

  2. 一个操作系统的实现(1)

    一个操作系统的实现 说明:本文是一个简单的学习记录,不是全面给大家提供学习的文章,文章内容均代表作者的个人观点,难免会有错误.转载请保留作者信息. 2010/11/20                ...

  3. SpringBoot2+MybatisPlus3入门手册v2修订版

    Mybatis-Plus简介 Mybatis-Plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件, 减少你的开发周期优化动态维护 XML 实体字段 ...

  4. java特种兵 怎么样_java特种兵

    最近发现一本讲述java的神书,已经拜读过,在这里宣传一下. 作者博客:外链网址已屏蔽 外链网址已屏蔽;amp;pos=23544533_0_1_q&cat=&key=java%CC% ...

  5. 三、内存管理 (一)存储器管理

    目录 1.1程序运行的基本过程 1.1.1 编辑.编译.链接.装入 1.1.2链接的三种方式 1.1.3装入的三种方式 1.2内存管理基本概念 1.2.1内存保护 1.2.2内存空间扩充 1.2.3地 ...

  6. mysql分页的高效算法_mysql_海量数据库的查询优化及分页算法方案

    mysql 海量数据库的查询优化及分页算法方案 文章分类:数据库 转自链 接:http://www.doczj.com/doc/c548420fba1aa8114431d9a4.html/databa ...

  7. 海量数据库的查询优化及分页算法方案 1

    随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀 ...

  8. 海量数据库的查询优化及分页算法方案(一)

    随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀 ...

  9. ASP分页要用到的属性ADO CursorLocation知识补充:

    ASP分页要用到的属性ADO CursorLocation知识补充: 定义和用法 CursorLocation 属性可设置或返回一个 long 值,该值指示游标服务的位置.可被设置为 CursorLo ...

最新文章

  1. Linux常用系统管理命令(top、free、kill、df)
  2. 【调参实战】那些优化方法的性能究竟如何,各自的参数应该如何选择?
  3. 全国一等奖,他的学习之路。
  4. reports buileder 触发器的写法
  5. 《Tensorflow 实战google深度学习框架》第二版源代码
  6. 从零基础转行到前端大牛,需要经过哪几个阶段?
  7. alwayson高可用组_AlwaysOn可用性组–如何在集群实例和独立实例之间设置AG(第2部分)
  8. Linux操作Oracle(16)——Oracle扩容报错:ORA-01144_表空间数据文件超出最大限制
  9. OpenCV-Python实战(13)——OpenCV与机器学习的碰撞
  10. WP8.1学习系列(第二十三章)——到控件的数据绑定
  11. [转] SQL Server中各个系统表的作用
  12. Linux-第一篇linux基本认识
  13. 《左耳听风》-ARTS-打卡记录-第十一周
  14. 周记——20150427
  15. [MRCTF2020]你传你马呢
  16. matlab 马赫带效应,matlab图像处理基础实例
  17. python英文文本情感分析_sentimentpy模块进行中文文本情感分类
  18. 第一个安卓app应用的开发--环境配置和第一项目创建
  19. 理想汽车高管解读财报:被认定为软件企业 获增值税退税2.8亿
  20. uva1593代码对齐

热门文章

  1. NeurIPS 2020 | 微软亚洲研究院论文摘录之目标检测篇
  2. 基于图像查询的视频检索,代码已开源!
  3. 新华三的背景_智能联接,新华三在重新勾勒拓扑图
  4. 【TensorFlow】TensorFlow从浅入深系列之十三 -- 教你深入理解模型持久化(模型保存、模型加载)
  5. 收藏 | 人人都能看懂的LSTM介绍及反向传播算法推导
  6. 带你自学Python系列(五):Python解决列表字符不区分大小写问题
  7. OpenCV人脸识别之三:识别自己的脸
  8. python如何导入numpy简书_Webpack 之常用配置(一)
  9. git tag和分支的区别_GIT常用命令大全
  10. 浪潮服务器 虚拟光驱,使用IPMI功能远程安装Windows Server 2003操作系统步骤