分页中最后一页页码显示不出来

wjy217213 2009-03-27 11:12:59
我的代码如下:
<%
Dim Conn,ConnStr
Set Conn=Server.CreateObject("Adodb.Connection")
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db.mdb")
Conn.open ConnStr
if err then
err.clear
Set Conn = Nothing
Response.Write "系统错误:数据库连接出错!"
Response.End
end if

dim rs,sql,i
set rs = server.createobject("adodb.recordset")
sql="select * from NwebCn_News order by NewsNameCh desc"
rs.open sql,Conn,1,3
rs.PageSize=2 'Recordset中一页所包含的记录数
zongye=rs.PageCount '页数
page=int(request("page"))
if page<=0 then page=1
rs.AbsolutePage=page
if rs.eof and rs.bof then
Response.Write "现在数据库中还没有新闻!"
else
for i=1 to rs.PageSize
response.write ""&left(rs("ContentCh"),700)&""
rs.movenext
next
End If
<%for i=1 to zongye %>
<% if i=page then%>
<u><%=i%></u>
<% else %>
<a href="index.asp?page=<%=i%>"><%=i%></a>
<% end if %>
<% next %>

%>
正确显示如下:
1 2 3 4

错误提示如下:
错误 '80020009'
/joynviscom/index.asp,行 181
页码显示不出来

据我观察应该是rs.PageSize=2 这的错,因为如果最后一页是一篇文章的话就出现上述错误,要是两篇的话就不出现错误,这是为什么呀?我的代码应该怎么改进呢?
希望大家能够帮助我,谢谢大家了!!
...全文
842 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjy217213 2009-04-01
  • 打赏
  • 举报
回复
原来第一页没有达到rs.PageSize=2 设定的记录时,同样会报上述的错误,那么怎么改进程序呢?让每页显示不足指定的记录数时显示当前页????????????请大家帮忙,谢谢了!
tikecoke 2009-03-27
  • 打赏
  • 举报
回复
for i=1 to rs.PageSize
response.write ""&left(rs("ContentCh"),700)&""
rs.movenext
next

上面这里,数据库到了最后一条时,还外下移就会出错了。
应在程序中作判断是否到了最后一条记录!

for i=1 to rs.PageSize
response.write ""&left(rs("ContentCh"),700)&""
if rs.eof then
exit for
end if
rs.movenext
next
wjy217213 2009-03-27
  • 打赏
  • 举报
回复
大家注意了,上一页,下一页,首页,尾页的,我不用这种
jim8590251 2009-03-27
  • 打赏
  • 举报
回复
继续推广个分页函数

'ASP分页函数----------------------------
'Author:BreezeXu
'Date:2008-12-28
'使用方法
'Set Rsc = Server.CreateObject("ADODB.Recordset")
'Sqlc = "select id,pro_name,pro_pic from rec_pro order by id desc"
'Rsc.open sqlc,conn,3,3
'if not Rsc.eof then
'Dim i
'i=0
'分页前加上以下2句话
'Rsc.absolutepage = pageset(Rsc,18)
'pag = Rsc.absolutepage
'do while not Rsc.eof and i<Rsc.pagesize
'i = i+1
'''''在这里写循环内容'''
'Rsc.movenext
'loop
'以下是显示上页,下页,跳转页等内容,可以用<tr><td>或者table包含他
'注意,Rs.close Set Rs = Nothing必须要写在以下函数的后面,否则调用会出错
'下下函数是要不要跳转到指定锚点,选其一,要跳到指定锚点就用第一个,函数的最后个参数是你设置锚点的名字,不用跳转到锚点就用第2个,最后个参数要留空,否则出错
'call page(Rsc,pag,"index.asp","maopage")'跳转到锚点的分页调用
'call page(Rsc,pag,"index.asp","")'不跳转到锚点的分页调用


Dim pag,allpages

pag=Request("pages")
if pag="" or isnumeric(pag)=false then
pag=1
else
pag=Abs(pag)
end if
'参数注释:
'Rs--数据集
'pagesize---每页显示条数
function pageset(Rs,pagesize)

Rs.pagesize=pagesize
pages=Rs.pagecount
Records=Rs.recordcount
currentpage=Cint(pag)
if currentpage="" or currentpage<1 then Currentpage=1
If currentpage>pages Then currentpage=pages
currentpage=CInt(currentpage)
Rs.absolutepage=currentpage
pageset = Rs.absolutepage
end function
'参数注释:
'Rs--数据集
'pag ----当前页
'site---- 地址
'mep ---铆点名,可选,不设要留空""
function page(Rs,pag,site,mep)
'response.write "总条数"&Rs.recordcount&"<br />"
'response.write "当前页"&pag&"<br />"
'response.write "每页显示"&Rs.pagesize&"<br/>"
'response.write "地址为"&site&"<br />"
'response.write "最后页"&(Rs.recordcount\Rs.pagesize)+1
if Rs.Recordcount<>Rs.pagesize then
if Rs.Recordcount mod Rs.pagesize =0 then
allpages=(Rs.recordcount\Rs.pagesize)
else
allpages=(Rs.recordcount\Rs.pagesize)+1
end if
else
allpages=1
end if
if instr(site,"?")<>0 then
myand="&"
else
myand="?"
end if
if mep<>"" then
mymep = mep
end if

if pag*Rs.pagesize<Rs.recordcount then
nt=pag*Rs.pagesize
else
nt=Rs.recordcount
end if
pageft= "显示<b>"&(pag-1)*Rs.pagesize+1&"</b>-<b>"&nt&"</b>条记录,共<font color='red'>"&Rs.recordcount&"</font>条记录 "
if pag=1 then
pageft=pageft& "首页 前页 "
else
if mep<>"" then
pageft=pageft& "<a href='"&site&myand&"pages=1#"&mymep&"'>首页</a> <a href='"&site&myand&"pages="&pag-1&"#"&mymep&"'>前页</a> "
else
pageft=pageft& "<a href='"&site&myand&"pages=1'>首页</a> <a href='"&site&myand&"pages="&pag-1&"'>前页</a> "
end if
end if

'if pag=(Rs.recordcount\Rs.pagesize)+1 then

if pag=allpages then
pageft=pageft& "后页 尾页"
else
if mep<>"" then
pageft=pageft& "<a href='"&site&myand&"pages="&pag+1&"#"&mymep&"'>后页</a> "
pageft=pageft& "<a href='"&site&myand&"pages="&(Rs.recordcount\Rs.pagesize)+1&"#"&mymep&"'>尾页</a>"
else
pageft=pageft& "<a href='"&site&myand&"pages="&pag+1&"'>后页</a> "
pageft=pageft& "<a href='"&site&myand&"pages="&(Rs.recordcount\Rs.pagesize)+1&"'>尾页</a>"
end if
end if
if mep<>"" then
pageft=pageft& "到第 <select name='topage' id='topage' size='1' onchange="&chr(34)&"window.location='"&site&myand&"pages='+this.value+'#"&mymep&"';"&chr(34)&">"
else
pageft=pageft& "到第 <select name='topage' id='topage' size='1' onchange="&chr(34)&"window.location='"&site&myand&"pages='+this.value;"&chr(34)&">"
end if

for i=1 to allpages
if i=pag then
pageft=pageft& "<option value='"&i&"' selected>"&i&"</option>"
else
pageft=pageft& "<option value='"&i&"'>"&i&"</option>"
end if

next

pageft=pageft& "</select>页,共"&allpages&"页"
response.write pageft
end function
西安风影 2009-03-27
  • 打赏
  • 举报
回复
给你一个简单分页的

<html>
<body>
<%
db=server.mappath("data.mdb")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
set rs=server.createobject("adodb.recordset")
sql="select * from student"
rs.open sql,conn,1,1
if rs.recordcount<>0 then
rs.pagesize=1
if request("page")<>"" then
page=cint(request("page"))
if page<1 then page=1
if page>rs.pagecount then page=rs.pagecount
else
page=1
end if
pagecount=rs.pagecount
pagesize=rs.pagesize
rs.absolutepage=page
else
pagesize=1
page=1
pagecount=1
end if
%>
<table style="border-collapse:collapse" border="1" bordercolor="#0000FF" cellspacing="0" cellpadding="0" width="80%" align="center">
<tr bgcolor="#FFFFFF" align="center">
<th><%=rs(0).name%></th><th><%=rs(1).name%></th><th><%=rs(2).name%></th>
</tr>
<%
for i=0 to pagesize-1
if rs.bof or rs.eof then
exit for
else
%>
<tr bgcolor="#FFFFFF" align="center">
<td><%=rs(0).value%></td><td><%=rs(1).value%></td><td><%=rs(2).value%></td>
</tr>
<%
end if
rs.movenext()
next
%>
</table>
<p align="center">
<a href="Default.asp">首页</a>
<%
if page=1 then
response.write("上一页 ")
else
response.write("<a href='Default.asp?page=" & page-1 & "'>上一页</a> ")
end if

if page=pagecount then
response.write("下一页")
else
response.write("<a href='Default.asp?page=" & page+1 & "'>下一页</a>")
end if
%>
<a href="Default.asp?page=<%=pagecount%>">末页</a>
<span>第<%=page%>页 共<%=pagecount%>页</span>
<select id="selectpage" name="selectpage" onchange="window.location='Default.asp?page='+this.options[this.selectedIndex].value">
<%for j=1 to pagecount%>
<option value="<%=j%>" <%if(j=page)then%>selected<%end if%>>第<%=j%>页</option>
<%next%>
</select>
</p>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>
wjy217213 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 w000111 的回复:]
for i=1 to rs.PageSize

if rs.eof then
exit for
end if
response.write ""&left(rs("ContentCh"),700)&""
rs.movenext
next


位置换一下
[/Quote]
谢谢你的参与,我照着你的改了,但是还是不行
w000111 2009-03-27
  • 打赏
  • 举报
回复
for i=1 to rs.PageSize

if rs.eof then
exit for
end if
response.write ""&left(rs("ContentCh"),700)&""
rs.movenext
next


位置换一下
wjy217213 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fangfeng335 的回复:]
for i=1 to rs.PageSize
response.write ""&left(rs("ContentCh"),700)&""
rs.movenext
next

上面这里,数据库到了最后一条时,还外下移就会出错了。
应在程序中作判断是否到了最后一条记录!

for i=1 to rs.PageSize
response.write ""&left(rs("ContentCh"),700)&""
if rs.eof then
exit for
end if
rs.movenext
next
[/Quote]

谢谢你的参与,我照着你的改了,但是还是不对

28,390

社区成员

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

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