Adodb.recordset分页是指利用Adodb.recordset实现数据库的分页。本节将对此分页方法的实现进行详细阐述。
RecordSet是ADO的内置对象之一,主要功能是对数据库进行操作。通过RecordSet,可以实现对数据库记录的各种操作。在学习RecordSet分页时,应首先了解AbsolutePage属性和PageSize属性。
1.、PageSize属性
PageSize属性的功能是决定多少条记录组成一个“页”,即每页的最多纪录数。PageSize能够设定并建立一个页的大小,从而允许使用AbsolutePage属性移到其他逻辑页的第一条纪录。PageSize属性可以随时设定。
2、AbsolutePage属性
AbsolutePage属性的功能是设定当前纪录的位置于哪一个页的页数编号,即通常说的当前页数AbsolutePage属性是以1开头的。若当前纪录为RecordSet的第一行纪录,则AbsolutePage为1。
另外,RecordSet的其他属性和常用方法如下。
● RecordSetCount属性:返回纪录集中的记录数。
● LockType:设定记录集锁定方式。
● CursorType:记录集游标类型。
● BOF、EOF:返回记录集游标位置。
● MoveNext、Movepre:将记录集游标向后、向前移动一个位置。
● MoveFirst、MoveNext:将记录集游标移动到最前或最后。
在现实中,RecordSet主要应用于站点数据方面的操作。下面将通过一个具体实例讲解利用Adodb.recordset实现分页过程,本实例主要包括两个文件,分别是分页文件adodb.asp和数据库接收文件conn.asp。
数据库结构:
该实例使用Access数据库,名称为“asp.mdb”
表news的设计结构
字段名 类型 是否主键 说明
id 自动编号 是 新闻编号
title 备注 否 标题
comment 备注 否 内容
news_time 文本 否 添加时间
数据库连接文件conn.asp的功能是建立和数据库的连接。文件代码如下所示:
<%
Dim ConnectionString
ConnectionString = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("asp.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open ConnectionString
%>
分页文件adodb.asp的功能是将数据库内的新闻标题按分页的形式显示出来。文件代码如下所示:
<%@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<!--#include file=conn.asp-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
body {
background-color: #99CCFF;
}
-->
</style></head>
<body>
<%
sql="select * from news"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,1
if not isempty(request("page")) then
pagecount=cint(request("page"))
else
pagecount=1
end if
n=1
rs.pagesize=8
rs.AbsolutePage=pagecount
filename="adodb.asp"
%>
<table width="311" border="0" align="center">
<%
do while not rs.eof
%>
<tr>
<td width="305"><%=rs("title")%></td>
</tr>
<%
rs.movenext
n=n+1
if n>rs.pagesize then exit do
loop
%>
</table>
<table width="535" border="0" cellspacing="0" cellpadding="0" align="center">
<form action="<%=filename%>" method="post">
<tr bgcolor="#B0CCDC">
<td height="35" bgcolor="#FFFFFF">
<div align="center"> <font size="2" FONT-SIZE: 12pt; COLOR: black;">黑体" class="a">共 <b><%=rs.recordcount%></b> 条记录, 页次: <b><font color=red><%=pagecount%></font>/<%=rs.pagecount%></b>,
<% if pagecount=1 and rs.pagecount<>pagecount and rs.pagecount<>0 then%>
<a href="<%=filename%>?page=<%=cstr(pagecount+1)%>" class="a">[下一页]</a>
<% end if %>
<% if rs.pagecount>1 and rs.pagecount=pagecount then %>
<a href="<%=filename%>?page=<%=cstr(pagecount-1)%>" class="a">
[上一页]</a>
<%end if%>
<% if pagecount<>1 and rs.pagecount<>pagecount then%>
<a href="<%=filename%>?page=<%=cstr(pagecount-1)%>" class="a">
[上一页]</a> <a href="<%=filename%>?page=<%=cstr(pagecount+1)%>" class="a">
[下一页]</a>
<% end if%>
直接到第
<select name="page">
<%for i=1 to rs.pagecount%>
<option value="<%=i%>"><%=i%></option>
<%next%>
</select>
页
<input type="submit" name="go" value="Go">
</font></div>
</td>
</tr>
</form>
</table>
</body>
</html>
Adodb.recordset分页
最新推荐文章于 2021-06-15 22:17:30 发布