奇怪,分页最后一页报错

mchowie 2009-11-15 12:37:18

<%
exec="select * from article where claz="&request.querystring("claz")&" order by time desc "
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
rs.PageSize=5
pagecount=rs.PageCount
page=int(request.QueryString ("page"))
if page<=0 then page=1
if request.QueryString("page")="" then
page=1
end if
rs.AbsolutePage=page

%>
<%for i=1 to rs.PageSize%>
<%if rs.EOF then
exit for
end if%>

<tr><td class=t101 background=images/bg3.gif><img border=0 src='images/arrow.gif'><a href="read_article_xxzx.asp?id=<%=rs("id")%>" target=_self> <%=rs("title")%></a></td></tr>
<%rs.movenext
next
%>
<tr><td class=t02>
<%if page=1 and not page=pagecount then%>
<div align="right">page<%=page%>  <%for i=1 to pagecount%>
<a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=i%>"><%=i%></a> <%next%><a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=page+1%>">>></a>  </div>
<%elseif page=pagecount and not page=1 then%>
<div align="right">page<%=page%>  <%for i=1 to pagecount%>
<a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=i%>"><%=i%></a> <%next%><a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=page-1%>"><<</a>  </div>
<%elseif page<1 then%><div class="font" align="right"><font color=red>没有任何记录!</font></div>
<%elseif page>pagecount then%><div class="font" align="right"><font color=red>没有任何记录!</font></div>
<%elseif page=1 and page=pagecount then%>
<%else%>
<div align="right">page<%=page%>  <%for i=1 to pagecount%>
<a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=i%>"><%=i%></a> <%next%><a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=page-1%>"><<</a>
<a href="xxzx1.asp?claz=<%=rs("claz")%>&page=<%=page+1%>">>></a>  </div>
<%end if%></td></tr>


这里设置每页5条记录,如果查询出的结果一共有11条结果
那么这里会有三页,点前面的两页,都没有问题,但是点最后一页,也就是第三页的时候
会出现
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/seetc/xxzx1.asp

的错误提示
...全文
146 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayouori 2009-11-16
  • 打赏
  • 举报
回复
把所有的
<%=rs("claz")%>
换成
<%=request.querystring("claz")%>
就可以了
mchowie 2009-11-15
  • 打赏
  • 举报
回复
对阿,所以我在这里求教各位大大.
  • 打赏
  • 举报
回复
[Quote=引用楼主 mchowie 的回复:]
这里设置每页5条记录,如果查询出的结果一共有11条结果
那么这里会有三页,点前面的两页,都没有问题,但是点最后一页,也就是第三页的时候
会出现
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/seetc/xxzx1.asp

的错误提示
[/Quote]
一共11,每页5条,怎么不能是3页?
gingerkang 2009-11-15
  • 打赏
  • 举报
回复
不错才怪,最后一页永远出错的
都move到最后了,已经是rs.eof 了
链接里面还是=<%=rs("claz")%>能不错吗?应该是=<%=request.querystring("claz")%>吧?
mchowie 2009-11-15
  • 打赏
  • 举报
回复
xxzx1.asp?claz=<%=rs("claz")%>&page=<%=i%>">

感觉是分页链接使用了结果集.....
mchowie 2009-11-15
  • 打赏
  • 举报
回复
楼上的,根据你的代码改了一下,还是有错哦

我的链接是这样的
xxzx1.asp?claz=22&page=3 这样的链接就会报错,page=3是最后一页
但是,如果是
xxzx1.asp?claz=22&page=2 就不会报错,而正常显示.

不知道是不是这里有问题阿?
net_yuhai 2009-11-15
  • 打赏
  • 举报
回复

length = rs.PageSize
if cint(currentPage) * cint(rs.PageSize) > rs.recordcount then
lenght = rs.recordcount - ( currentPage - 1 ) * cint(lenght)
end if
for i=1 to length


net_yuhai 2009-11-15
  • 打赏
  • 举报
回复
不是不能显示第三页,而是程序让每一页都循环五条记录,而第三页只有一条记录
net_yuhai 2009-11-15
  • 打赏
  • 举报
回复
错在这一行<%for i=1 to rs.PageSize%>
mchowie 2009-11-15
  • 打赏
  • 举报
回复
完整的出错提示就是这个噢
没有提示是哪行出错
ACMAIN_CHM 2009-11-15
  • 打赏
  • 举报
回复
完整的错误信息 是什么? 哪一行出错?

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧