如何才能做到将数据库的查询结果分页显示呢

合集下载

SQLserver分页的4种方法示例(很全面)

SQLserver分页的4种方法示例(很全面)

SQLserver分页的4种⽅法⽰例(很全⾯)这篇博客讲的是SQL server的分页⽅法,⽤的SQL server 2012版本。

下⾯都⽤pageIndex表⽰页数,pageSize表⽰⼀页包含的记录。

并且下⾯涉及到具体例⼦的,设定查询第2页,每页含10条记录。

⾸先说⼀下SQL server的分页与MySQL的分页的不同,mysql的分页直接是⽤limit (pageIndex-1),pageSize就可以完成,但是SQL server 并没有limit关键字,只有类似limit的top关键字。

所以分页起来⽐较⿇烦。

SQL server分页我所知道的就只有四种:三重循环;利⽤max(主键);利⽤row_number关键字,offset/fetch next关键字(是通过搜集⽹上的其他⼈的⽅法总结的,应该⽬前只有这四种⽅法的思路,其他⽅法都是基于此变形的)。

要查询的学⽣表的部分记录⽅法⼀:三重循环思路先取前20页,然后倒序,取倒序后前10条记录,这样就能得到分页所需要的数据,不过顺序反了,之后可以将再倒序回来,也可以不再排序了,直接交给前端排序。

还有⼀种⽅法也算是属于这种类型的,这⾥就不放代码出来了,只讲⼀下思路,就是先查询出前10条记录,然后⽤not in排除了这10条,再查询。

代码实现-- 设置执⾏时间开始,⽤来查看性能的set statistics time on ;-- 分页查询(通⽤型)select *from (select top pageSize *from (select top (pageIndex*pageSize) *from studentorder by sNo asc ) -- 其中⾥⾯这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。

as temp_sum_studentorder by sNo desc ) temp_orderorder by sNo asc-- 分页查询第2页,每页有10条记录select *from (select top 10 *from (select top 20 *from studentorder by sNo asc ) -- 其中⾥⾯这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。

如何在MySQL中实现数据分页与排序

如何在MySQL中实现数据分页与排序

如何在MySQL中实现数据分页与排序在现代数据库应用中,数据分页和排序是非常常见且重要的功能。

无论是在网页应用中的数据展示,还是在后台管理系统中的数据查看,都需要对数据进行分页和排序操作。

而MySQL作为一种常用的关系型数据库管理系统,提供了丰富的功能来满足这些需求。

本文将详细讨论如何在MySQL中实现数据分页与排序的方法和技巧。

一、数据分页1. 使用LIMIT和OFFSET实现简单分页在MySQL中,可以使用LIMIT和OFFSET关键字来实现简单的数据分页。

LIMIT用于指定每页显示的记录数,OFFSET用于指定从第几条记录开始显示。

例如,要获取第1页的10条记录,可以使用以下SQL语句:SELECT * FROM table_name LIMIT 10 OFFSET 0;其中table_name是要查询的表名,0表示第一页。

假设要获取第2页的数据,只需将OFFSET的值设置为10:SELECT * FROM table_name LIMIT 10 OFFSET 10;这样就可以获取第2页的数据了。

2. 使用LIMIT和OFFSET实现动态分页除了上述静态分页的方式,我们还经常需要实现动态分页的功能,即根据用户的需求进行灵活的分页操作。

在这种情况下,可以使用变量来动态计算LIMIT和OFFSET的值。

以下是一个示例:SET @pageNumber = 2;SET @pageSize = 10;SET @offset = (@pageNumber - 1) * @pageSize;SELECT * FROM table_name LIMIT @pageSize OFFSET @offset;在这个示例中,我们首先设置了页码、每页显示的记录数和偏移量的变量。

然后,通过计算偏移量和LIMIT的值,就可以获取对应页码的数据了。

3. 使用ROW_NUMBER函数实现高级分页在MySQL 8.0及以上版本中,可以使用ROW_NUMBER函数来实现更高级的分页功能。

MySQL中的数据分页技巧

MySQL中的数据分页技巧

MySQL中的数据分页技巧MySQL是一种广泛使用的开源关系型数据库管理系统,被许多企业和开发者用于存储和管理海量的数据。

在实际应用中,常常会遇到需要进行数据分页处理的情况,以便在前端展示数据时提供更好的用户体验。

本文将介绍MySQL中的数据分页技巧,包括基本的分页查询语句、优化分页查询的方法以及处理大数据分页的策略。

一、基本的分页查询语句在MySQL中进行数据分页通常使用LIMIT关键字来实现。

LIMIT语句允许对查询结果的行数进行限制,在分页查询中可以配合OFFSET关键字一起使用,来指定查询的起始位置。

例如,下面的查询语句可用于获取第一页的10条数据:```SELECT * FROM table_name LIMIT 10 OFFSET 0;```其中,table_name是需要查询的表名,LIMIT 10表示返回10条数据,而OFFSET 0表示从第0条数据开始查询,即第一页。

对于其他页的查询,只需要将OFFSET的值设置为相应的偏移量即可。

假设需要查询第2页的数据,每页显示10条,可以使用如下查询语句:```SELECT * FROM table_name LIMIT 10 OFFSET 10;```这样可以获取第11条到第20条数据。

二、优化分页查询的方法尽管使用LIMIT和OFFSET可以实现数据分页,但在处理大数据量时,可能会遇到性能问题。

因为每次查询都需要扫描整个结果集,并且返回指定的行数,这对于大型表来说开销较大。

为了优化分页查询,可以考虑以下几种方法:1. 使用索引:在需要进行分页查询的列上创建索引,可以加快数据的检索速度。

特别是针对经常进行分页查询的列,如创建时间、更新时间等。

2. 限制查询字段:只返回需要显示的字段,而不是查询全部字段。

这样可以减少网络传输的数据量,提高查询效率。

3. 缓存查询结果:如果分页查询的数据不经常变化,可以将查询结果缓存起来,下次查询时可以直接使用缓存的结果。

arcodesign 表格分页用法

arcodesign 表格分页用法

文章标题:深度探讨arcodesign表格分页用法1. 引言在数字化时代,数据处理和分析已经成为各行各业中不可或缺的一部分。

作为数据展示的一种常见形式,表格在信息呈现和分析中发挥着重要作用。

而arcodesign表格分页用法作为表格设计和展示的重要工具,不仅能够实现数据的分页展示,还可以提升表格的可读性和用户体验。

本文将深度探讨arcodesign表格分页用法,以帮助读者全面理解其设计原理和实际应用。

2. 理解arcodesign表格分页用法arcodesign表格分页用法是一种通过分页展示大量数据的方法,它能够使用户在浏览表格时更加便捷和高效。

通常情况下,一张包含大量数据的表格可能会导致页面加载速度变慢和用户体验下降。

而arcodesign表格分页用法通过将数据分页展示,可以有效减轻页面加载压力,提高用户浏览体验。

这种用法的设计初衷是为了让用户能够根据需求浏览和分析数据,而不至于因为数据量过大而导致信息获取困难。

3. 实践应用在实际应用中,arcodesign表格分页用法可以灵活运用于各种数据展示场景,例如电商全球信息湾的商品列表、金融系统的交易记录、教育评台的学生信息等。

通过合理地设置每页展示的数据量和提供翻页功能,用户可以在保持页面清晰的快速定位和浏览感兴趣的数据。

这种设计不仅能够提高数据的可读性,还能够减少页面加载时间,为用户提供更加高效的数据浏览和分析体验。

4. 个人观点和理解在我看来,arcodesign表格分页用法是一种非常实用和贴合用户需求的设计方式。

通过分页展示数据,不仅能够减轻页面加载压力,还能够提高用户的浏览效率。

作为一名信息技术工作者,我深切理解数据处理和展示对于工作效率和决策分析的重要性。

我非常重视这种设计方法在实际应用中所带来的积极影响,相信它能够为用户带来更加良好的交互体验。

5. 总结与回顾arcodesign表格分页用法作为一种重要的数据展示设计方式,具有显著的优势和应用前景。

如何在MySQL中使用分页和排序进行数据展示

如何在MySQL中使用分页和排序进行数据展示

如何在MySQL中使用分页和排序进行数据展示在现代的信息化社会,数据库扮演着至关重要的角色。

而MySQL作为一种流行的关系型数据库管理系统,被广泛应用于各个领域。

在处理大量的数据时,我们经常需要将数据进行分页和排序来进行展示。

本文将介绍如何在MySQL中使用分页和排序进行数据展示的方法和技巧。

一、MySQL分页分页是将一大批数据切割成多个小块进行展示的方法,常见于网站的分页浏览、搜索引擎的搜索结果等场景。

在MySQL中,可以使用LIMIT语句来实现分页功能。

1. LIMIT语句的使用方法LIMIT语句用于限制查询结果的数量,语法如下:SELECT * FROM table_name LIMIT offset, count;其中,offset表示偏移量,即从查询结果的第几条数据开始取,count表示要取多少条数据。

例如,我们有一个名为"users"的表,其中包含100条用户信息。

我们想要展示第11到第20条用户信息,可以使用如下的SQL语句:SELECT * FROM users LIMIT 10, 10;这条语句将从"users"表中查询第11到第20条用户信息。

2. 分页计算公式在实际应用中,为了方便计算偏移量和数量,我们可以采用以下的分页计算公式:offset = (page - 1) * size;其中,page表示要展示的页码,size表示每页展示的数据条数。

例如,如果我们想要展示第3页的数据,每页展示10条数据,可以将公式代入到LIMIT语句中:SELECT * FROM users LIMIT 20, 10;这样就能够查询到第3页的数据。

二、MySQL排序排序是对数据按照特定的规则进行重新排列的方法,常见于数据分析、排行榜等场景。

在MySQL中,可以使用ORDER BY语句来对查询结果进行排序。

1. ORDER BY语句的使用方法ORDER BY语句用于指定查询结果的排序规则,语法如下:SELECT * FROM table_name ORDER BY column_name [ASC|DESC];其中,column_name表示要排序的列名,ASC表示升序排序,DESC表示降序排序。

treeTable实现分页显示数据

treeTable实现分页显示数据

treeTable实现分页显⽰数据默认的treetable 是没有分页查询数据的,⾃⼰改装了⼀下<title>Layui树形表格</title><div class="page-wrapper"><table id="demoTreeTb"></table><div id="laypages"></div></div><!-- 表格操作列 --><script type="text/html" id="tbBar"><a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></script><script>pagefun(1, 15); // 使⽤分页来显⽰我的团队function pagefun(page, size) {e(['admin', 'form', 'treeTable', 'laypage'], function () {var $ = layui.$, admin = layui.admin, treeTable = layui.treeTable, laypage = ypage;//计算出分页数$.get("http://192.168.20.114/api/Home/GetmenuCount", { curr: page, limit: size }, function (result) {laypage.render({elem: 'laypages',count: result.count,//总页数curr: result.curr,//当前页limit: 15,limits: [15, 20, 30, 40, 50, 60],layout: ['count', 'prev', 'page', 'limit', 'next'],jump: function (obj, first) {if (!first) {//如果不添加这个,会⼀直请求pagefun(obj.curr, 15);}},prev: '上⼀页',next: '下⼀页',theme: '#f9c357',});});// 渲染表格treeTable.render({height: 'full-140',elem: '#demoTreeTb',toolbar: false,tree: {iconIndex: 1,isPidData: true,idName: 'Id', //⽗pidName: 'SubsetId',//⼦⽗⼦id 必须不同,所以需要指定两个永远不会相等的值haveChildName: 'haveChild', // 是否有下级},cellMinWidth: 160,cols: [[{ type: 'numbers', title: '序号', width: 100 },{ field: 'Name', title: '菜单名称' },{ field: 'CreateTime', title: '创建时间' },{ align: 'center', toolbar: '#tbBar', title: '操作' }]],reqData: function (data, callback) {var url = "http://192.168.20.114/api/Home/";url += data ? ('GetmenuByIdList?id=' + data.Id) : ("GetmenuList?curr=" + page + "&limit=" + size); $.get(url, function (res) {callback(res.data);});},style: 'margin-top:140px;'});//定义⼀个查询共有多少总数的⽅法treeTable.on('tool(demoTreeTb)', function (obj) {console.log(obj,'test');var event = obj.event;if (event === 'edit') {} else if (event === 'del') {console.log(111);}});$('.demoTreeTb .layui-btn').on('click', function () {var type = $(this).data('type');active[type] ? active[type].call(this) : '';});});};</script>[Route("api/[controller]/[action]")][ApiController]public class HomeController : Controller{[HttpGet]public JsonResult GetmenuCount(int curr=1,int limit=15){var obj = new{code = 200,msg = "ok",curr = curr,count = 20};return Json(obj);}[HttpGet]public JsonResult GetmenuList(int curr = 1, int limit = 15){List<Menu> menulist = new List<Menu>();for (int i = 1; i <= 15; i++){menulist.Add(new Menu { Id = i, CreateTime = DateTime.Now, haveChild = (i % 2 == 0 ? true : false), Name = $"主菜单{i}", SubsetId = lim it + i });}var obj = new{code = 200,msg = "ok",count = 1,data = menulist};return Json(obj);}[HttpGet]public JsonResult GetmenuByIdList(int id){List<Menu> menulist = new List<Menu>();for (int i = id; i <= 30; i++){menulist.Add(new Menu { Id = id+1,CreateTime = DateTime.Now,haveChild = (i % 2 == 0 ? true : false),Name = $"⼦菜单{id}_{i}", SubsetId = id*2+i });}var obj = new{code = 200,msg = "ok",count = 1,data = menulist};return Json(obj);}}。

JSP 实现数据的分页显示

JSP  实现数据的分页显示

JSP 实现数据的分页显示在JSP中,数据的分页显示非常实用,它的应用可以使数据表中的多条数据实现分页显示,使数据的显示更加条理清晰。

本扩展练习的目的是:使数据表bookinfo 中的数据实现分页显示,并实现数据的翻页功能。

实例中有两个文件Pagescount.jsp 和Pages.jsp,其中Pagescount.jsp实现数据库的连接并查询数据返回数据集,同时设置每页显示的记录数和计算数据页数。

Pages.jsp实现数据的分页显示。

(1)创建一个命名为Pagescount.jsp的信息查询页面。

【新建】|【JSP (advanced Templates)】命令,弹出【新建JSP页面】对话框,在对话框的文件名称中输入Pagescount.jsp,单击【完成】按钮。

(2)添加JSP文件要用到的Java类包、编码。

查询bookinfo数据表中数据并返回数据集,最后,计算数据集中的记录数并设置显示的页数。

(4)创建一个命名为Pages.jsp的信息查询页面。

【新建】|【JSP (advanced Templates)】命令,弹出【新建JSP页面】对话框,在对话框的文件名称中输入Pages.jsp,单击【完成】按钮。

(5)添加JSP文件要用到的Java类包、编码。

(6)在JSP文件中输出如下内容并保存。

</TD><%}%><TD Width=150><FORM action=Pages.jsp method=POST>到<INPUT type="text" name=ToPage style="HEIGHT: 25px; WIDTH: 40px"value=<%= ShowPage%> > 页</FORM></TD></TR></TABLE></CENTER></BODY></HTML>(7)执行上述代码,结果如图10-18所示。

MySQL中的数据分页与分块处理技巧

MySQL中的数据分页与分块处理技巧

MySQL中的数据分页与分块处理技巧在Web开发中,我们经常需要处理大量的数据并进行展示。

而对于大数据集来说,如果一次性加载全部数据,会导致页面加载速度变慢,用户体验不佳。

为了解决这个问题,常用的方法是将数据进行分页展示或者分块处理。

这篇文章将介绍在MySQL中实现数据分页与分块处理的技巧。

一、数据分页的基本原理数据分页是将大量的数据按照一定的数量进行分割,每次只加载一页的数据展示给用户。

以一个订单表为例,假设有10000个订单数据,需要分页展示,每页显示10条数据。

那么,首先需要确定页数,即总订单数/每页数量。

然后,根据当前页码来确定需要查询的数据的起始位置。

最后,使用LIMIT关键字来限制查询结果的数量。

二、MySQL中的分页查询在MySQL中实现数据分页可以使用LIMIT关键字来进行分页查询。

LIMIT关键字的功能是:通过指定偏移量和需要加载的行数来限制查询结果。

例如,查询订单表中从第11行开始的10条数据,可以使用以下SQL语句:```SELECT * FROM order_tableLIMIT 10 OFFSET 10;```其中,LIMIT 10表示需要加载的行数,OFFSET 10表示偏移量,即起始位置为第11行。

对于分页查询来说,还需要处理边界情况,如当页码小于1时,将其设置为1;当页码大于总页数时,将其设置为总页数。

三、MySQL中的数据分块处理除了数据分页,有时候我们需要对大数据集进行分块处理。

分块处理是将大数据集按照一定的大小进行分割,每次处理一块数据,以提高效率。

在MySQL中,分块处理可以通过设置循环进行数据处理和控制处理的块大小来实现。

以下是一个示例代码:```SET @block_size = 1000;SET @total_rows = (SELECT COUNT(*) FROM big_table);SET @total_blocks = CEIL(@total_rows/@block_size);SET @current_block = 0;WHILE @current_block < @total_blocks DOSET @offset = @current_block * @block_size;SET @current_block = @current_block + 1;-- 在这里进行数据处理和操作SELECT * FROM big_tableLIMIT @block_size OFFSET @offset;END WHILE;```在上述代码中,我们通过设置变量来分别记录块的大小、总行数、总块数和当前块的位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,但主要有两种:一、将数据库中所有符合查询条件的记录一次性的都读入recordset 中,存放在内存中,然后通过ADO Recordset 对象所提供的几个专门支持分页处理的属性:PageSize( 页大小)、PageCount( 页数目) 以及AbsolutePage( 绝对页) 来管理分页处理。

二、根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。

两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示来依次做判断分析从而达到分页显示的效果,而后者是先根据指示做出判断并将规定数目的符合查询条件的记录读入内存,从而直接达到分页显示的功能。

我们可以很明显的感觉到,当数据库中的记录数达到上万或更多时,第一种方法的执行效率将明显低于第二种方法,因为当每一个客户查询页面时都要将所有符合条件的记录存放在服务器内存中,然后在进行分页等处理,如果同时有超过100 个的客户在线查询,那么ASP 应用程序的执行效率将大受影响。

但是,当服务器上数据库的记录数以及同时在线的人数并不是很多时,两者在执行效率上是相差无几的,此时一般就采用第一种方法,因为第一种方法的ASP 程序编写相对第二种方法要简单明了得多。

在这里作者就以我们常见的ASP BBS 程序为例,来给大家分析一下如何在BBS 程序里实现分页显示功能,由于我们一般使用的BBS 程序的数据库记录数和同时访问的人数都不会太多,所以以下程序实例是使用的先前所介绍的第一种分页显示方法。

进行ADO 存取数据库时的分页显示,其实就是对Recordset 的记录进行操作。

所以我们首先必须了解Reordset 对象的属性和方法:BOF 属性:目前指标指到RecordSet 的第一笔。

EOF 属性:目前指标指到RecordSet 的最后一笔。

Move 方法:移动指标到RecordSet 中的某一条记录。

AbsolutePage 属性:设定当前记录的位置是位于哪一页AbsolutePosition 属性:目前指标在RecordSet 中的位置。

PageCount 属性:显示Recordset 对象包括多少“页”的数据。

PageSize 属性:显示Recordset 对象每一页显示的记录数。

RecordCount 属性:显示Recordset 对象记录的总数。

下面让我们来详细认识一下这些重要的属性和方法一、BOF 与EOF 属性通常我们在ASP 程序中编写代码来检验BOF 与EOF 属性,从而得知目前指标所指向的RecordSet 的位置,使用BOF 与EOF 属性,可以得知一个Recordset 对象是否包含有记录或者得知移动记录行是否已经超出该ecordset 对象的范围。

如:< % if not rs.eof then ... %>< % if not (rs.bof and rs.eof) %>若当前记录的位置是在一个Recordset 对象第一行记录之前时,BOF属性返回true,反之则返回false。

若当前记录的位置是在一个Recordset 对象最后一行记录之后时,EOF 属性返回true,反之则返回false。

BOF 与EOF 都为False:表示指标位于RecordSet 的当中。

BOF 为True:目前指标指到RecordSet的第一笔记录。

EOF 为True:目前指标指到RecordSet 的最后一笔记录。

BOF 与EOF 都为True:在RecordSet 里没有任何记录。

二、Move 方法您可以用Move 方法移动指标到RecordSet 中的某一笔记录,语法如下:rs.Move NumRecords,Start这里的“rs”为一个对象变量,表示一个想要移动当当前记录位置的Recordset 对象;“NumRecords”是一个正负数运算式,设定当前记录位置的移动数目;“start”是一个可选的项目,用来指定记录起始的标签。

所有的Recordset 对象都支持Move 方法,如果NumRecords 参数大于零,当前记录位置向末尾的方向移动;如果其小于零,则当前记录位置向开头的方向移动;如果一个空的Recordset 对象调用Move 方法,将会产生一个错误。

MoveFirst 方法:将当前记录位置移至第一笔记录。

MoveLast 方法:将当前记录位置移至最后一笔记录。

MoveNext 方法:将当前记录位置移至下一笔记录。

MovePrevious 方法:将当前记录位置移至上一笔记录。

Move [n] 方法:移动指标到第n 笔记录,n 由0 算起。

三、AbsolutePage 属性AbsolutePage 属性设定当前记录的位置是位于哪一页的页数编号;使用PageSize 属性将Recordset 对象分割为逻辑上的页数,每一页的记录数为PageSize( 除了最后一页可能会有少于PageSize 的记录数)。

这里必须注意并不是所有的数据提供者都支持此项属性,因此使用时要小心。

与AbsolutePosition 属性相同,AbsolutePage 属性是以 1 为起始的,若当前记录为Recordset 的第一行记录,AbsolutePage 为1。

可以设定AbsolutePage 属性,以移动到一个指定页的第一行记录位置。

四、AbsolutePosition 属性若您需要确定目前指标在RecordSet 中的位置,您可以用AbsolutePosition 属性。

AbsolutePosition 属性的数值为目前指标相对於第一笔的位置,由 1 算起,即第一笔的AbsolutePosition 为1。

注意, 在存取RecordSet 时,无法保证RecordSet 每次都以同样的顺序出现。

若要启用AbsolutePosition,必须先设定为使用用户端cursor( 指针),asp 码如下:rs2.CursorLocation = 3五、PageCount 属性使用PageCount 属性,决定Recordset 对象包括多少“页”的数据。

这里的“页”是数据记录的集合,大小等于PageSize 属性的设定,即使最后一页的记录数比PageSize 的值少,最后一页也算是PageCount 的一页。

必须注意也并不是所有的数据提供者都支持此项属性。

六、PageSize 属性PageSize 属性是决定ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。

设定并建立一个页的大小,从而允许使用AbsolutePage 属性移到其它逻辑页的第一条记录。

PageSize 属性能随时被设定。

七、RecordCount 属性这也是一个非常常用和重要的属性,我们常用RecordCount 属性来找出一个Recordset 对象包括多少条记录。

如:< % totle=RS.RecordCount %>在了解了Recordset 对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的。

首先,我们可以为PageSize 属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过RecordCount 属性来确定记录的总数;再用记录总数除以PageSize 就可得到所显示的页面总数;最后通过AbsolutePage 属性就能完成对指定页的访问好象很并不复杂呀,下面让我们来看看程序该如何实现呢?我们建立这样一个简单的BBS 应用程序,它的数据库中分别有以下五个字段:“ID”,每个帖子的自动编号;“subject”,每个帖子的主题;“name”,加帖用户的姓名;“email”,用户的电子邮件地址;“postdate”,加帖的时间。

数据库的DSN 为“bbs”。

我们将显示帖子分页的所有步骤放在一个名为“ShowList()”的过程中,方便调用。

程序如下:\'----BBS 显示帖子分页----< % Sub ShowList() %>< %PgSz=20 \'设定开关,指定每一页所显示的帖子数目,默认为20帖一页Set Conn = Server.CreateObject(\"ADODB.Connection\")Set RS = Server.CreateObject(\"ADODB.RecordSet\")sql = \"SELECT * FROM message order by ID DESC\"\'查询所有帖子,并按帖子的ID倒序排列Conn.Open \"bbs\"RS.open sql,Conn,1,1If RS.RecordCount=0 thenresponse.write \"< P>< center>对不起,数据库中没有相关信息!< /center>< /P>\"elseRS.PageSize = Cint(PgSz) \'设定PageSize属性的值Total=INT(RS.recordcount / PgSz * -1)*-1 \'计算可显示页面的总数PageNo=Request(\"pageno\")if PageNo=\"\" ThenPageNo = 1elsePageNo=PageNo+1PageNo=PageNo-1end ifScrollAction = Request(\"ScrollAction\")if ScrollAction = \" 上一页\" ThenPageNo=PageNo-1end ifif ScrollAction = \" 下一页\" ThenPageNo=PageNo+1end ifif PageNo < 1 ThenPageNo = 1end ifRS.AbsolutePage = PageNoResponse.Write \"< CENTER>\"position=RS.PageSize*PageNopagebegin=position-RS.PageSize+1if position < RS.RecordCount thenpagend=positionelsepagend= RS.RecordCountend ifResponse.Write \"< P>< font color=\'Navy\'>< B>数据库查询结果:< /B>\"Response.Write \"(共有\"&RS.RecordCount &\"条符合条件的信息,显示\"&pagebegin&\"-\"&pagend&\")< /font>< /p>\"Response.Write \"< TABLE WIDTH=600 BORDER=1 CELLPADDING=4 CELLSPACING=0 BGCOLOR=#FFFFFF>\"Response.Write \"< TR BGCOLOR=#5FB5E2>< FONT SIZE=2>< TD>< B>主题< /B>< /TD>< TD>< B>用户< /B>< /TD>< TD>< B>Email< /B>< /TD>< TD>< B>发布日期< /B>< /TD>< /FONT>< TR BGCOLOR=#FFFFFF>\"Do while not (RS is nothing)RowCount = RS.PageSizeDo While Not RS.EOF and rowcount > 0If n=1 thenResponse.Write \"< TR BGCOLOR=#FFFFFF>\"ELSEResponse.Write \"< TR BGCOLOR=#EEEEEE>\"End Ifn=1-n %>< TD>< span style=\"font-size:9pt\">< A href=\'view.asp?key=< % =RS(\"ID\")%>\'>< % =RS(\"subject\")%>< /A>< /span>< /td>< TD>< span style=\"font-size:9pt\">< % =RS(\"name\")%>< /A>< /span>< /td>< TD>< span style=\"font-size:9pt\">< a href=\"mailto:< % =RS(\"email\")%>\">< % =RS(\"email\")%>< /a>< /span> < /TD>< TD>< span style=\"font-size:9pt\">< % =RS(\"postdate\")%>< /span> < /td>< /TR>< %RowCount = RowCount - 1RS.MoveNextLoopset RS = RS.NextRecordSetConn.Closeset rs = nothingset Conn = nothing%>< /TABLE>< FORM METHOD=GET ACTION=\"list.asp\">< INPUT TYPE=\"HIDDEN\" NAME=\"pageno\" V ALUE=\"< % =PageNo %>\">< %if PageNo > 1 Thenresponse.write \"< INPUT TYPE=SUBMIT NAME=\'ScrollAction\'V ALUE=\' 上一页\'>\"end ifif RowCount = 0 and PageNo < >Total thenresponse.write \"< INPUT TYPE=SUBMIT NAME=\'ScrollAction\'V ALUE=\' 下一页\'>\"end ifresponse.write \"< /FORM>\"End if%>< % End Sub %>相信大家都应该能完全读懂上面的程序,因此就不在此详细解释了。

相关文档
最新文档