ADO 存取数据库时如何分页显示
其实方法有很多,但主要有两种:
一、将数据库中所有符合查询条件的记录一次性的都读入 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 对象记录的总数。
ASP.NET入门教程 6.3 为页面添加事件[3]
操作回顾 首先查看Page_Load事件中的代码 Protected Sub Page_Load(ByVal sender As Object ByVal e As System EventArgs) Handles Me Load 这段代码是一个声明 它告诉开发人员该过程的很多信息 主要包括三个方面 括号前的内容 括号内的内容以及括号后的内容 在该行代码的开始部分是如下内容 Protected Sub Page_Load lProtected表明谁可以使用这个过程 在这个示例中 它表示只有同一个类中的其他程序可以使用这个过程 第 章将详细讨论 lSub说明这是一个子例程 同时它不会返回任何值 这意味着ASP NET能够直接调用这个过程 而且不会希望有任何值会返回 lPage_Load是事件过程的名称 事件过程的名称可以是任意的 但您会发现一些准的用法 它们是对具体事件的描述 Page_Load事件是一个描述性很好的事件名称 因为无论何时页面在加载到ASP NET进行处理的时候都会触发这个事件 下面是括号中的内容 这些是事件的参数 有两个参数 由逗号隔开 ByVal sender As Object ByVal e As System EventArgs 这些参数只是由ASP NET传递给事件过程的变量 第 章将详细讨论变量 因此具体的语法到时再解释 但有必要了解某些细节 基本上ASP NET中的所有事件都有两个参数 第一个参数是触发事件的对象 通常称为sender 在这里该参数实际上表示页面本身 因为这就好像页面在说 嗨 我己经加载完成 现在您可以进行自己的操作了 对于其他事件 例如由按钮触发的事件 sender则表示按钮 第二个参数 e 可能是事件过程需要的某种附加信息 对于Page_Load事件 参数e不包含任何信息 但在本章的后面将看到一些的确需要附加信息的事件 本示例中的三个事件过程都不需要使用这个两个参数 但ASP NET还是提供了它们 以便在需要的时候可以使用 lishixinzhi/Article/program/net/201311/14885

