asp编程的分页问题,请了两个朋友过来看都解决不了这个问题,哪位大虾帮帮忙,感激不尽 50

各位路过的大虾请抽一点时间帮忙看看问题出在什么地方问题特征:分页问题,在首页列表主题超过20个分页,点击下一页或尾页,出来的下方下放出现错误,不能正常显示演示地址是:ht... 各位路过的大虾请抽一点时间帮忙看看问题出在什么地方
问题特征:分页问题,在首页列表主题超过20个分页,点击下一页或尾页,出来的下方下放出现错误,不

能正常显示
演示地址是:http://www.12bs.com

错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/index.asp

能找出问题所在吗?

比较急,困惑中。求助大虾,感激不尽,先说声:谢谢

以下是截取的相关代码

<td width="33%" align="right" class="style2"><a href="?page=1" class="style2">首页

</a>|<a href="?page=<%=page-1%>" class="style2">上一页</a>|<a href="?page=<%=page+1%>"

class="style2">下一页</a>|<a href="?page=<%=rs.pagecount%>" class="style2">尾页</a></td>
</tr>
</table></td>
</tr>
</table>
<%end if%>
<%if session("sex")="Boss" then%><table width="900" border="0" cellpadding="5"

cellspacing="1" bgcolor="#<%=cotd%>">
<tr style="cursor:hand" onClick="opent1()">
<td align="center" bgcolor="#FFFFFF"><span id="s1">[管理面板]</span></td>
</tr>
<tr id="t1" style="display:none;">
<td bgcolor="#<%=cotbc%>">
<table width="100%" border="0" cellpadding="5" cellspacing="1" bgcolor="#<%

=cotd%>">
<tr>
<td bgcolor="#FFFFFF"><span style="font-weight: bold">[版块操作]</span></td>
</tr> <tr>
<td bgcolor="#FFFFFF">版块信息:<%
sql="select * from clas order by id desc"
set rs=Server.CreateObject("Adodb.Recordset")
rs.open sql,conn,1,1
if rs.recordcount>0 then
for i=1 to rs.recordcount
response.write("<a href='select.asp?clas="&rs("name")&"'><font

color='#"&cotd&"'>"&rs("name")&"</font></a>")
if not rs.eof then
response.write(" ")
rs.movenext
else
exit for
end if
next
end if%></td>
我觉得第二个回答似乎找到了问题所在,我发够40个帖子分成两页的时候,点击下一页就没有这个问题了
但我是个新手,不会写,哪位高手帮忙写一个,该放在什么地方,解决问题就采纳

第二个回答者:多线程单循环
更改循环
你设定了一页必需显示20条记录。所以就算数据库到了结尾也要显示20条记录,指针还在向下走,就会出现EOF为真。
你写个判断应该可以搞定。
展开
 我来答
定你个HI
2006-04-06 · TA获得超过226个赞
知道答主
回答量:60
采纳率:100%
帮助的人:50.2万
展开全部
你的循环条件是i=1 to rs.recordcount,循环过程中i没变,一直等于1,所以循环就一直继续下去,直到所有的记录写完了,循环还没有结束,所以这时出现了以上问题,记录不存在!定义i为变量,i的初值=1,循环的过程中,i要自增1
这样改,
if rs.recordcount>0 then
i=1
for i<rs.recordcount
response.write("<a href='select.asp?clas="&rs("name")&"'><font

color='#"&cotd&"'>"&rs("name")&"</font></a>")
response.write(" ")
rs.movenext
i=i+1
next
end if
或者:
if rs.recordcount>0 then
do while not(rs.eof or err)
response.write("<a href='select.asp?clas="&rs("name")&"'><font
color='#"&cotd&"'>"&rs("name")&"</font></a>")
response.write(" ")
rs.movenext
loop
end if
多线程单循环
2006-03-31 · 超过29用户采纳过TA的回答
知道答主
回答量:135
采纳率:0%
帮助的人:97.5万
展开全部
更改循环
你设定了一页必需显示20条记录。所以就算数据库到了结尾也要显示20条记录,指针还在向下走,就会出现EOF为真。

你写个判断应该可以搞定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2006-03-30
展开全部
该错误表明数据库记录已到结尾

最后几句做个调整后看一下是否可以
if not rs.eof then
response.write(" ")
rs.movenext

else
exit for
next
end if

end if%></td>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eddieliang
2006-04-13 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:67
采纳率:0%
帮助的人:95.4万
展开全部
您这里差了一个跳转页面的ASP代码"rs.absolutepage",而且没有把返页的PAGE值传回来.
这样改一下.
sql="select * from clas order by id desc"
set rs=Server.CreateObject("Adodb.Recordset")
rs.open sql,conn,1,1
page=cint(request("page"))
n=rs.RecordCount
rs.pagesize=20
m=cint(rs.pagecount)
if page="" then
page=1
elseif page<1 then
page=1
end if
if cint(request("page"))>m then
page=m
end if
page=cint(page)
if not rs.eof then
rs.absolutepage=page
end if
if not rs.eof then
for i=1 to rs.pagesize
response.write("<a href='select.asp?clas="&rs("name")&"'><font color='#"&cotd&"'>"&rs("name")&"</font></a>")
rs.movenext
if rs.eof then exit for
next
end if

相关例子:www.esou.com.cn/temp/test/userlist.asp
相关源码:www.esou.com.cn/temp/test/test.rar

如果还解决不了,或大家想交流一下编程方面,您可以加我QQ:123526160
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式