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>
分享到:
相关推荐
Set adoPrimaryRS = New ADODB.Recordset adoPrimaryRS.Open "select * from numbers", conn, adOpenStatic, adLockOptimistic adoPrimaryRS.PageSize = nPageSize ''页数 lPageCount = adoPrimaryRS.PageCount ...
1.建立Recordset对象 代码如下: Dim objMyRst Set objMyRst=Server.CreateObject(“ADODB.Recordset”) objMyRst.CursorLocation=adUseClientBatch ‘客户端可批量处理 objMyRst.CursorType=adOpenStatic’光标类型...
set rs=server.createobject("adodb.recordset") if not isempty(request("page")) then pagecount=cint(request("page")) else pagecount=1 end if sql="select 查询语句" rs.open sql,conn,1,1 rs....
Set rs=Server.Createobject(ADODB.RECORDSET) rs.Open sql, conn, 1, 1 if not rs.eof then pages = 30 '定义每页显示的记录数 rs.pageSize = pages '定义每页显示的记录数 allPages = rs.pageCount'...
set rs=server.createobject(“adodb.recordset”) exce=”sql” ‘sql 查询语句 rs.open exce,conn,1,1 %> 然后是分页属性的设置 <% rs.PageSize=3 ‘设置页码 pagecount=rs.PageCount ‘获取总页码 page=...
代码如下:<... dim rs set rs=server.CreateObject(“adodb.recordset”) if request(“type”)=”date” then yearstr=request(“selyear”) monstr=request(“selmonth”) daystr=request(“seld
page=trim(request(“page”)) maxperpage=40 first=true last=true dim rs set rs=server.CreateObject(“adodb.recordset”) sql=”select id,title,add1,cartype,isred,enterdate,hits from newnews where...
‘以上为包含数据库衔接文件 ‘——————————————–查询开始数据库 set rs=server.CreateObject(“adodb.recordset”) rs.open “select * from books where id=”&id&” order by id desc...
根据我的理解,分页显示的关键就在于对ADO的Recordset对象或DTC(设计时控件)的Recordset控件的属*和方法的熟练把握上。 这七种分页显示的方法概括起来说分四类: 第一、二种我暂取名叫“纯ASP法”,这也是国内的...
第一部分 软件可行性研究与项目开发计划 1. 问题定义 随着时代的进步,网络技术层出不穷信息量急剧膨胀,整个人类社会已成为信息化的社会,人们对信息和数据的处理。管理和加工已经进入自动化、网络化和社会化的阶段...
set rs=server.createobject("ADODB.Recordset") rs.Open sql,conn, 1, 3 rs.addnew '如果是新访客的话,在库中新增一条记录。 rs("cs")=1 '记下访问次数为1 rs("ip")=request.servervariables("remote_addr") '...
支持图片打印(基于文件名、adodb.recordset 中的sql image 字段、access中的真正的ole字段) 支持单元格镜像(如一个单元格嵌套票据,另外两个单元格为其 镜像,可实现在一张打印纸上的三联打印) 强大的...
支持图片打印(基于文件名、adodb.recordset 中的sql image 字段、access中的真正的ole字段) 支持单元格镜像(如一个单元格嵌套票据,另外两个单元格为其 镜像,可实现在一张打印纸上的三联打印) 强大的...
Access 2000数据库系统设计(PDF)---018目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试....
目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试. 31.2.3 DAP设计模式 51.3 为Microsoft...
Access 2000数据库系统设计(PDF)---011目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试....
Access 2000数据库系统设计(PDF)---002目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试....