rs的pagesize属性

在了解了Recordset对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的。首先,我们可以为PageSize属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过RecordCount属性来确定记录的总数;再用记录总数除以PageSize就可得到所显示的页面总数;最后通过AbsolutePage属性就能完成对指定页的访问。好象很并不复杂呀,下面让我们来看看程序该如何实现呢?

子的自动编号;“s我们建立这样一个简单的BBS应用程序,它的数据库中分别有以下五个字段:“ID”,每个帖ubject”,每个帖子的主题;“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,1
If RS.RecordCount=0 then
     response.write "<P><center>对不起,数据库中没有相关信息!</center></P>"
  else
    RS.PageSize = Cint(PgSz) '设定PageSize属性的值
    Total=INT(RS.recordcount / PgSz * -1)*-1 '计算可显示页面的总数
    PageNo=Request("pageno")
    if PageNo="" Then
       PageNo = 1
        else
       PageNo=PageNo+1
       PageNo=PageNo-1
        end if
    ScrollAction = Request("ScrollAction")
    if ScrollAction = " 上一页 " Then
    PageNo=PageNo-1
    end if    
    if ScrollAction = " 下一页 " Then
    PageNo=PageNo+1
    end if
    if PageNo <1 Then
    PageNo = 1
    end if
    n=1
    RS.AbsolutePage = PageNo
    Response.Write "<CENTER>"
    position=RS.PageSize*PageNo
    pagebegin=position-RS.PageSize+1
    if position <RS.RecordCount then
      pagend=position
    else  
      pagend= RS.RecordCount
        end if  
   Response.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.PageSize
    Do While Not RS.EOF and rowcount > 0
     If n=1 then
         Response.Write "<TR BGCOLOR=#FFFFFF>"
     ELSE
         Response.Write "<TR BGCOLOR=#EEEEEE>"
     End If
     n=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 - 1
    RS.MoveNext
    Loop
    set RS = RS.NextRecordSet
    Loop
      Conn.Close
      set rs = nothing
      set Conn = nothing
%>
</TABLE>
<FORM METHOD=GET ACTION="list.asp">
<INPUT TYPE="HIDDEN" NAME="pageno" VALUE="<% =PageNo %>">
<%
  if PageNo > 1 Then
    response.write "<INPUT TYPE=SUBMIT NAME='ScrollAction' VALUE=' 上一页 '>"
  end if
  if RowCount = 0 and PageNo <>Total then
    response.write "<INPUT TYPE=SUBMIT NAME='ScrollAction' VALUE=' 下一页 '>"
  end if
    response.write "</FORM>"
End if
%>
<% End Sub %>

时间: 2024-08-26 05:20:34

rs的pagesize属性的相关文章

ASP利用Recordset对象的属性和方法实现分页

对象|分页 ASP中关于分页显示的基本方法 在了解了Recordset对象的属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的.首先,我们可以为PageSize属性设置一个值,从而指定从记录组中取出的构成一个页的行数:然后通过RecordCount属性来确定记录的总数:再用记录总数除以PageSize就可得到所显示的页面总数:最后通过AbsolutePage属性就能完成对指定页的访问.好象很并不复杂呀,下面让我们来看看程序该如何实现呢? 我们建立这样一个简单的BBS应用程序,它的

asp高效率通用分页类

效率|分页类 <%'====================================================================='PapgeSize 定义分页每一页的记录数'GetRS 返回经过分页的Recordset此属性只读'GetConn 得到数据库连接'GetSQL 得到查询语句'程序方法说明'ShowPage 显示分页导航条,唯一的公用方法'例:' Set mypage=new xdownpage '创建对象' mypage.getconn=conn '得

ASP中实现分页显示的七种武器

分页|显示|分页     在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便.

ADO 存取数据库时如何分页显示

ado|分页|数据|数据库|显示     什么是 ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.想不想了解如何实现分页显示?请看本文!     <动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用

超级ASP大分页

分页|分页 <% '=================================================================== 'ShowMorePage ASP版本 'Version HuangJM1.00 'Code by maomao 'Create Date 2004-09-28 'QQ:5144707 'http://blog.csdn.net/maomaoysq 'Write for my lover:HuangJM '本程序可以免费使用.修改,但请保留以

ASP分页显示详论

分页|显示 如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.想不想了解如何实现分页显示?请看本文! 那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多, 但主要有两种: 一.将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所提供的几个专门支持分页处

创建一个ASP通用分页类(二)代码部分

创建|分页 <%'====================================================================='XDOWNPAGE ASP版本'版本 1.00'Code by zykj2000'Email: zykj_2000@163.net'BBS: http://bbs.513soft.net'本程序可以免费使用.修改,希望我的程序能为您的工作带来方便'但请保留以上请息''程序特点'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户

ASP教程:ADO存取数据库时如何分页显示

ado|分页|教程|数据|数据库|显示      什么是 ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.这就是数据库查询的分页显示,如果你还不明白,去看看 yahoo 等搜索引擎的查询结果就会明白了.       那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,但主要有两种: 一.将数据库

深入分析讲解动态网页技术ASP分页显示

动态|分页|网页|显示 如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.想不想了解如何实现分页显示?请看本文! 那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多, 但主要有两种: 一.将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所提供的几个专