asp分页显示数据库的问题,如果最后一页记录不够每页显示数量,就会报错。

比如我的数据库的记录为7条,那么设定分页每页显示3条,那么前两页都能显示,而最后一页报错。其实就是因为最后一页的记录不能达到设定的3条,而只有1条,所以最后一页就无法显示,那么怎么解决?它提示错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

请看我的代码。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
dim lian
lian="provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data/guest.mdb")
Set bb=Server.CreateObject("ADODB.Connection")
bb.open lian
%>
<%
dim exc
exc ="select * from yonghu"
set read=server.CreateObject("ADODB.recordset")
read.Open exc,bb,1,1 '1,1
%>
<%
read.pagesize=3
pages=read.PageCount
pagex=int(request("page"))
if pagex<=0 then pagex=1
if pagex="" then pagex=1
read.AbsolutePage=pagex
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; chareadet=gb2312">
<title>无标题文档</title>
</head>

<body>
<table width="500" height="159" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>爱好</td>
<td>职业</td>
<td>时间</td>
</tr>
<% for a=1 to read.pagesize %>
<tr>
<td><%=read("name")%></td>
<td><%=read("sex")%></td>
<td><%=read("age")%></td>
<td><%=read("hoby")%></td>
<td><%=read("job")%></td>
<td><%=read("time")%></td>
</tr>
<%
read.movenext
next
%>
<p> </p>
<%for i=1 to pages%>
<a href="fengye.asp?page=<%=i%>"><%=i%></a>
<%next%>

</body>
</html>
一楼的方法不行,试过了还是不行。

第1个回答  推荐于2016-08-05
这个我一直在用的,你要么用我的看看,把数据库名称和显示数据修改下
<% set rsnews=server.createobject("adodb.recordset")
SQL="SELECT * FROM 数据库名称 ORDER BY ID DESC"
rsnews.open SQL,CONN,1,3
IF Not rsnews.eof Then
proCount=rsnews.recordcount
rsnews.PageSize=10 '定义显示数目
if not IsEmpty(Request("ToPage")) then
ToPage=CInt(Request("ToPage"))
if ToPage>rsnews.PageCount then
rsnews.AbsolutePage=rsnews.PageCount
intCurPage=rsnews.PageCount
elseif ToPage<=0 then
rsnews.AbsolutePage=1
intCurPage=1
else
rsnews.AbsolutePage=ToPage
intCurPage=ToPage
end if
else
rsnews.AbsolutePage=1
intCurPage=1
end if
intCurPage=CInt(intCurPage)
For i = 1 to rsnews.PageSize
if rsnews.EOF then
Exit For
end if
%>

'....输出信息

<%
rsnews.MoveNext
next
%>
<%else%>

<%end if%>
<%
rsnews.close
set rsnews=nothing
%>

<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="25" align="right" valign="middle">
<a href="?cla=<%=cla%>&type=<%=request("type")%>&ToPage=<%=intCurPage-1%>"onFocus="this.blur()">上一页</a>
     
<a href="?cla=<%=cla%>&type=<%=request("type")%>&ToPage=<%=intCurPage+1%>"onFocus="this.blur()">下一页</a>     
</td>
</tr>
</table>本回答被提问者采纳
第2个回答  2011-01-22
服了你,干嘛要for循环。要用while loop
while not rs.eof then
'你的代码
rs.movenext
loop

asp 分页显示不足一页或者最后一页不是满页就会出现乱码access 数据库...
这个 是 因为当数据库数据不够每页最大条数的 时候才 会出现的问题 也就是 说你 的循环中有个 地方没有进行判断 我 仔细看了你 的 代码 在 < If i >= PageSize Then Exit For '如果i值已经为每页最大值,即常量页大小时,退出外层循环 Rs.MoveNext if Rs.eof then Exit For '我加的 ...

asp 分页显示不足一页或者最后一页不是满页就会出现乱码access 数据库...
If i >= PageSize Then Exit For '如果i值已经为每页最大值,即常量页大小时,退出外层循环 Rs.MoveNext if Rs.eof then Exit For '添上这一句 Next End Sub ShowPage Call CurrentPage(PageName,PageNum,RecordNum,Page,Colspan)Else Response.Write("数据库没有内容")End If ...

急!ASP分页代码问题,为什么第一页显示正常,点下一页就会报错?
这句代码上,你没有把变量传递给要打开的页面

asp分页最后一页无法显示?
这里有问题。在最后1页的情况下。你上边while loop循环已经把指针移动到rs.eof。这时候你再去取rs("suozaidi")值就会溢出。不知道你为什么要取某条记录的这2个字段值。如果是搜素条件的话应该通过request取。或者你在loop里边先赋值给新变量然后最后再输出。

asp分页显示
因为如果谁把page参数在地址栏里面修改了就会导致页面出错 这个是我写的一段,能防止页面参数出错同时解决了记录书不是分页数的整倍数时候页面出错的情况 rs.PageSize = 100 If Len(Request("page")) = 0 Then '如果为空 iPage = 1 Elseif Not IsNumeric(Request("page")) Then '如果不是数字...

asp分页输入查询条件后只能显示满足条件的第一页,后面的不能显示
' 设置记录集在每页的总行数,也就是 PageSize属性 RS.PageSize=40 '把rs.pageCount转换成整数和page才能作比较 pageCount = cint(rs.pageCount)' 设置当前的页号( AbsolutePage属性)if page = 0 then page =1 end if RS.AbsolutePage = page x=1 ' 显示当前页中的所有记录( PageSize中...

asp 分页中打开最后一页报错
你要循环的是记录,不是分页数 改为:< if rs.eof and rs.bof then response.Write("暂时还没有文章")else count=0 do while not (rs.eof or rs.bof) and count<rs.PageSize response.Write("编号:"&rs("bh"))response.Write("名称:"&rs("mc"))response.Write("价格:"&rs("jg")...

asp分页显示出错,当前记录集不支持书签。这可能是提供程序或选定的游...
maxpagecount=Rs.pagecount '###记录总页数 TotalNumber=cint(Rs.RecordCount)'###记录总数 Rs.absolutepage = CurrentPage '###当前页数 ii=0 Rem '###显示多少页 pagestart=CurrentPage-3 pageend=CurrentPage+3 Rem 'n=CurrentPage if pagestart<1 then pagestart=1 end if if pageend>ma...

ASP分页问题(每页的页码显示个数)
<%'===分页定义开始,可放在数据库打开前或后 dim action action=request.QueryString("action")Const MaxPerPage=10 '定义每页显示记录数,可根据实际自定义 dim totalPut dim CurrentPage dim TotalPages dim j dim sql if Not isempty(request("page")) then currentPage=Cint(request("page")...

ASP分页只能显示第一页,按下一页没有数据,再按上一页回到第一页也显示...
正确的上一页,下一页应该如下操作 在获取到本页信息时候,把本记录的ID给埋出来比如id=rs1("id")然后 < set rs=server.create("adodb.recordset")rs.open "select top 1 id from info where id>"&id&"",conn,1,1 response.write("下一页");rs.close set rs=nothing set rs=server.c...

相似回答