asp中表的查询并分页的代码 的提问

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:32:02
我的这段代码是查询并分页的代码
比如有7条讯系,每页3条,一共3页,前2页正常,但第3页读取第7条后下面便显示
ADODB.Recordset '800a0bcd'

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

\www\biaodan4.asp, line 48

没有数据时也会这样显示

下面是这段全部代码,请指教

<%
exec="select * from shgg "
set rs=server.createobject("adodb.recordset")
rs.open exec,eee,1,1%> <tr>
<td width="74"> </td>
<td width="105"> </td>
<td width="84"> </td>
</tr>
<% rs.pagesize=3 '每页度曲条数
pagecount=rs.pagecount '确定页数
page=int(request("page"))
if page<=0 then page=1
if request("page")="" then page=1
rs.absolutepage=page '当前所在页
%>
<%if rs.eof and rs.bof then
response.write("没有")
else
for iii=1 to rs.pagesize
%>

<%
page=request("page")
if page="" or page=0 or isnumeric("page")=false then
page=1
else
page=int(page)
end if
Dim rs
set rs=server.createobject('ADODB.RECORDSET")
rs.open "select * from 表 where 条件=条件",conn,1,1
if not(rs.eof and rs.bof) then
stopnow=0
else
stopnow=1
end if
%>
<body>
<%if stopnow=0 then%>
<div>
<ul>
<li><%=rs("字段")%></li>
</ul>
</div>
<%
else
response.write "无内容!"
end if
%>
</body>

<%if rs.eof and rs.bof then
response.write("没有")
else
for iii=1 to rs.pagesize
%>
上面的代码有个问题:
你判断的rs.eof在外,面for循环在内,则在第三页时, if条件为真(存在第7条),而for中的rs.movenext却要到第8,第9条.因此,你要在for循环内用if rs.eof的判断,而不是在for的外面.