南京交警被撞:asp分页程序却为什么显示了全部记录?

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 15:09:03
<%@language="vbscript"%>
<%
Set conn = Server.CreateObject("ADODB.Connection")
Strconn="driver={Microsoft Access Driver (*.mdb)}; "
Strconn=strconn & "dbq= " & Server.MapPath("database\财务.mdb")
conn.open strconn
set rs=server.createobject("adodb.recordset")
rs.open "select * from 表1",conn,1,1

pageno=cint(request.querystring("pageno"))
if request.querystring("pageno")="" then pageno=1
rs.pagesize=3
pagecoun= rs.pagecount

rs.absolutepage=pageno
while not rs.eof
for j=0 to rs.fields.count-1
response.write rs(j)
next
rs.movenext
response.write "<p>"
wend
if pageno=1 and not pageno=pagecoun then
response.write "上页"
response.write "<a href=base.asp?pageno="&pageno+1&">下页</a>"
elseif pageno=pagecoun and not pageno=1 then
response.write "<a href=base.asp?pageno="&pageno-1&">上页</a>"
response.write "下页"
else
response.write "<a href=base.asp?pageno="&pageno-1&">上页</a> "
response.write "<a href=base.asp?pageno="&pageno+1&">下页</a> "
end if
conn.close
set rs=nothing
set conn=nothing
%>
/********************************************
应该说我设置了rs.pagesize=3则每页应显示3条记录,可实际却显示了全部.为何?
不要更改循环的条件,就是while not rs.eof.以下程序也是这个循环条件,却做到了分页,不解!!
在分页的情况下,rs.eof 到底是指当前页的结尾,还是所有记录的结尾?
/********************************************

你写的这样,我看到都头晕!
真接这样写:
<% do while not rs.eof and i<rs.pagesize
输出你要的字段
i=i+1
rs.movenext
loop%>

do while rs.eof=false
for j=0 to rs.fields.count-1
response.write rs(j)
next
rs.movenext
response.write "<p>"
loop

问题在这:while not rs.eof


rs.open "select * from 表1",conn,1,1
改成
rs.open "select * from 表1",conn,1,3
试试

呵呵,我的qq群21024531,是讨论asp的,欢迎大家加入啊。

rs.eof是指的记录集的结尾。
你的问题出在循环输出部分。
你首先要给没页输出设置一个计数器变量count=0,
在循环条件中还要加一个count<rs.pagesize,也就是
while not rs.eof and count<rs.pagesize
for ...
...
next
count=count+1
rs.movenext
response.write "<p>"
wend