快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

对数据库中的记录用上一条下一条显示(一)

若要让RecordSet移动到上一条下一条的位置,让我们先学会以下RecordSet对象的属性和方式:

BOF属性:当前游标指到RecordSet的第一条记录。
EOF属性:当前游标指到RecordSet的最后一条记录。
Move方式:移动游标到RecordSet中的某一个记录。
AbsolutePosition属性:当前游标在RecordSet中的位置。
bookmark(书签)属性:对RecordSet的一条记录做一个记号。

具体介绍如下:

BOF与EOF属性

可以编写程式码来检查BOF与EOF属性,来得知当前游标RecordSet的位置:

BOF与EOF都为False:表示游标位于RecordSet当中。
BOF为True:当前游标指到RecordSet的第一条记录。
EOF为True:当前游标指到RecordSet的最后一条记录。
BOF与EOF都为True:在RecordSet里没有任何的资料记录。
Move方式

您可以用Move方式移动游标到RecordSet中的某一条记录:

MoveFirst方式:移至第一条记录。
MoveLast方式:移至最后一条记录。
MoveNext方式:移至下一条记录。
MovePrevious方式:移至上一条记录。
Move [n]方式:移动游标到第n条记录,n由0算起。
AbsolutePosition属性

若您需要确定当前游标在RecordSet中的位置,您可以用AbsolutePosition属性。

AbsolutePosition属性的数值为当前游标相对于第一条的位置,由1算起,即第一条的AbsolutePosition为1。

然而,不要误以为AbsolutePosition是资料记录的编号,假如当前RecordSet处于未定的状态,则

AsolutePosition的数值为�1。

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

若要启用AbsolutePosition,必须先设定为使用用户端cursor,asp码如下:

rs2.CursorLocation = 3


一、Move/AbsolutePosition的例子

让我们看一个於ASP程式码当中使用Move/AbsolutePosition做到上一条下一条记录功能的例子。

譬如ASP程式码rs14.asp如下:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT * From 着作"

\\\'Enable AbsolutePosition

rs2.CursorLocation = 3 \\\'adUseClient

rs2.Open SqlStr,conn1,1,1

if Request("sel") = "prev" then

Session("position") = Session("position") - 1

rs2.Move Session("position")

elseif Request("sel") = "next" then

Session("position") = Session("position") + 1

rs2.Move Session("position")

else

Session("position") = 0

end if

%>

<% = Session("position") %>

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>

<TR>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">书名</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">出版</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">图片</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">简介</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">AbsolutePosition</FONT></TD>

<TR>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("书名") %></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("出版") %></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("图片") %></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("简介") %></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2.AbsolutePosition %></TD>

</TR>

</TABLE>

<% if Session("position") > 0 then %>

<A href=rs14.asp?sel=prev>上一条</A>

<% end if %>

<% if Session("position") < rs2.RecordCount -1 then %>

<A href=rs14.asp?sel=next>下一条</A>

<% end if %>

<% rs2.Close %>

以上的 ASP程式码rs14.asp,在用户端使用浏览器,浏览执行的结果,显示上一条下一条的功能。

由Session("position")储存这个使用者的RecordSet游标位置,当按下 [上一条] 超级连接时,由<A href=rs14.asp?sel=prev>上一条</A>,将sel设定为prev,并重新执行rs14.asp的asp码。由以下的程式部份,

将Session("position")减一:

if Request("sel") = "prev" then

Session("position") = Session("position") - 1

rs2.Move Session("position")

elseif Request("sel") = "next" then

Session("position") = Session("position") + 1

rs2.Move Session("position")

else

Session("position") = 0

end if

然后使用Move Session("position")方式,将移动游标到第Session("position")个记录,第一条记录的Session("position")值为0。

当按下 [下一条] 超级连接时,由<A href=rs14.asp?sel=next>下一条</A>,将sel设定为next,并重新执行rs14.asp的asp码。由以上的程式部份,将Session("position")加一,然后使用Move Session("position")方式,将移动指标到第Session("position")个记录。

AbsolutePosition部份,首先由rs2.CursorLocation = 3设定为使用用户端cursor,以启用AbsolutePosition,即可由<%= rs2.AbsolutePosition %>显示AbsolutePosition的值。

为了判定是否要显示 [上一条] [下一条] 超级连接,由以下的程式部份:

<% if Session("position") > 0 then %>

<A href=rs14.asp?sel=prev>上一条</A>

<% end if %>

<% if Session("position") < rs2.RecordCount -1 then %>

<A href=rs14.asp?sel=next>下一条</A>

<% end if %>

就可以使用if Session("position") > 0、if Session("position") < rs2.RecordCount -1,比较当前的位置Session("position")和第一条0、第末条RecordCount -1的位置,来判定是否要显示 [上一条] [下一条] 的超级连接。
返回类别: 教程
上一教程: 无组件上传图片到数据库中
下一教程: 全面考察“禁用浏览器后退按钮”

您可以阅读与"对数据库中的记录用上一条下一条显示(一)"相关的教程:
· 对数据库中的记录用上一条下一条显示(三)
· 对数据库中的记录用上一条下一条显示(二)
· 对数据库中的记录用上一条下一条显示(三)
· 对数据库中的记录用上一条下一条显示(二)
· 让数据库中的记录用上一条下一条显示
    微笑服务 优质保证 索取样品