??? 本文演示ASP.net的DataGrid和Sql Server 实现大数据量下的分页,为了便于实现演示,数据表采用了Northwind数据库的Orders表(830条记录)。
select * from orders where orderid between 10248 and 10253
其中,开始编号为:(CurrentPageIndex - 1) * PageSize? 结束编号为:CurrentPageIndex * PageSize
??? 当然,如果这个字段断号不是很严重,而且允许不是很严格的按照每页条数分页,这样的方法也是可以用的。
??? 如果这个字段断号,或者需要按照其他条件排序分页,就要复杂些了。首先要获得这个页面需要显示的编号,
然后再按照这个编号获得需要的块区数据。根据编号获得块区数据很简单。不过用下面方式获得数据排序并不是按
照指定的id列表顺序,这时候还要附加order by 命令。
select * from orders where orderid in (10248,10249,10250,10251,10252,10253) order by orderid desc
?
获得这个页面需要显示的编号列表就复杂多了,而且有多种方案:
方案一:维护一个表,这个表记录需要显示的这些编号排序顺序。(这个表可以是临时表,也可以是物理表)。下面演示了利用一个全局临时表。
这个全局临时表记录需要显示的编号。注意排序,这里的order by 就是需要显示的排序顺序。
?
create table ##temptable( iid int IDENTITY (1, 1) NOT NULL, mainid int NOT NULL ) insert ##temptable(mainid) select OrderID from orders order by OrderID desc select * from ##temptable drop table ##temptable -- 实际执行时候,删除全部临时表当然不再这里执行。
?
这个临时表存在,获得指定分页的分块数据就很简单了。看下面代码:
?
create table ##temptable(iid int IDENTITY (1, 1) NOT NULL,mainid int NOT NULL) insert ##temptable(mainid) select OrderID from orders order by OrderID desc declare @PageSize int,@CurrPage int,@strSQL varchar(2000),@IDStr varchar(1000) select @PageSize = 30 select @CurrPage = 2 select @IDStr = '' select @IDStr = @IDStr + ltrim(rtrim(str(MainID))) + ',' from ##temptable where iid between ((@CurrPage-1)*@PageSize+1) and @CurrPage*@PageSize if @IDStr <> '' begin select @IDStr = left(@IDStr,len(@IDStr)-1) end select @strSQL = 'select * from orders where OrderID in ('+@IDStr+') order by OrderID desc ' exec(@strSQL) drop table ##temptable
相关推荐
ACCESS 数据库大数据量分页的几种方法比较及测试结果分析 本文解决的问题:1.ACCESS 是否存在更有效率的分页方法?2.现有 ACCESS 大数据量 10 万条数据分页的效率测试3.ACCESS 的数据承载量到底有多大? ACCESS ...
1. 计算总页数:根据数据总数和每页显示的数据量来确定。 2. 渲染分页导航:创建并添加页码按钮。 3. 绑定点击事件:点击分页按钮时,加载对应页的数据并更新表格。 4. 保存当前页状态:确保用户导航回页面时,仍然...
当数据量较大时,一次性加载所有数据不仅效率低下,也可能导致界面响应缓慢。因此,实现`JTable`的分页显示是优化用户体验的重要手段。这篇转载的博客文章探讨了如何在`JTable`中实现分页功能。 首先,理解`JTable`...
在Web开发中,数据量较大的时候,为了提高用户体验,通常会采用分页的方式来展示信息。jQuery是一个轻量级、功能丰富的JavaScript库,它为实现分页提供了便利。本篇将详细介绍jQuery分页插件的使用及其实现原理。 #...
2. **扩展方法(Extension Methods)**:可能在某个命名空间下定义了一些扩展方法,直接扩展了`IQueryable<T>`接口,使得在Entity Framework的LINQ查询中可以直接调用分页方法。 3. **示例用法**:压缩包中可能包含...
测量数据(仅指测量坐标成果数据,一般为南方CASS格式,参见下表)从仪器下载下来后,都需要打印出来签字存档,如果手动排版将是一项繁琐的工作。可在Excel中添加一个宏,将数据读出按格式分页排版,不管有多少数据...
支付宝面临的主要挑战之一是如何管理和处理海量数据,包括但不限于数据的流失、挽留、维系以及提升获取阶段的数据量。 #### 第四篇:支付宝数据平台整体架构 支付宝数据平台采用了ADC架构体系,其中包括以下几个...
见下图 用户首先填写“起始网页”,即从哪一页开始采集。 然后填写数据库连接字符串,这里是定义了采集到的数据插入到哪个数据库,后面选择表名,不必说了。 <br>网页编码,不出意外的话,中国大陆都...
2. **效率低下**:打印时需要再次向服务器请求数据。 #### 七、轻量级的ActiveX打印方式 这是一种创新的Web套打解决方案,通过结合JavaScript和轻量级的ActiveX控件,实现了高效、精确的打印功能。相比于传统的...
在本例中,我们探讨的是如何使用 MyBatis Interceptor 来实现分页功能,这对于处理大数据量的查询是至关重要的。 首先,我们需要了解 MyBatis Interceptor 的工作原理。Interceptor 类似于 Java 中的 AOP(面向切面...
同时,为了优化性能,可以考虑分页加载数据,只加载当前显示的部分,或者使用服务器端分页来减少客户端负担。 总的来说,BIRT是一个强大的报表工具,提供了丰富的功能和高度的灵活性。通过深入理解和有效利用这些...
当前是个会信息复杂,数据量巨大,急需一个管理系统来实现对数据的管理。基于此,我设计了学生管理系统。其主要功能: 实现学生信息的管理(管理员) 增加,删除,查询(模糊查询),修改的功能 实现分页功能...
这一数据量的积累为报告的准确性和可靠性提供了坚实的基础。银川地区的85个常用岗位的薪酬水平作为调研的一部分,被详细记录在报告中。 2. 岗位薪酬水平指导 报告中提供了银川地区常用岗位的薪酬水平指导,其中包括...
bootStrap table 是一个轻量级的table插件,使用AJAX获取JSON格式的数据,其分页和数据填充很方便,支持国际化 三、使用方法 1、引入js、css [js] view plain copy <!--css样式--> <link href="css/...
【WebService+Android】是将Web服务技术应用到Android平台上的一个重要实践,主要目的是为了实现远程数据交换和交互。Web服务,通常基于SOAP(Simple Object Access Protocol)或REST(Representational State ...
4. **内容选择与优化**:为了提高PV(页面浏览量),实习编辑采用多分页新闻、插入内容精编等方式,增加用户停留时间和点击率。早间的更新重点在于吸引眼球的图片和科普内容,以抓住股事开盘时的流量高峰。 5. **...
而不需要投入过多的时间来学习系统的使用技巧,在细节处下大工夫。 Kesioncms系统功能完善,覆盖面广、扩展性强、负载能力好、模板调用非常灵活、管理方便,因此不仅适合于建设一般企业、政府、学校、个人等小型...
在广大用户的宝贵建议下,思康软件通过不断努力和改进,于2008年6月发布了客户管理系统V3.0,友好美观的系统操作界面,清晰快捷的菜单设计,方便易用的录入流程,高效科学的数据架构,秉承开源创新的精神,使思康...