asp制作的一个网页进行查询,在另个网页里显示结果,查询的结果有多条,如何实现显示的结果分页?

那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,但主要有两种:一、将数据库中所有符合查询条件的记录一次性的都读入recordset中,存放在内存中,然后... 那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,但主要有两种:
一、将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所提供的几个专门支持分页处理的属性: PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 ) 来管理分页处理。
二、根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。
两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示来依次做判断分析从而达到分页显示的效果,而后者是先根据指示做出判断并将规定数目的符合查询条件的记录读入内存,从而直接达到分页显示的功能。

第二种方法如何实现啊,请详细指教。
展开
 我来答
linzi2
2012-07-05 · TA获得超过1261个赞
知道大有可为答主
回答量:1563
采纳率:0%
帮助的人:541万
展开全部
楼主,主要还是玩SQL语句的使用,需要那页的几条就Top对应的
以下代码供参考:
<%
'每页的记录数
dim pagesize
pagesize= "30"
'读出总记录数搭激,总页数,作者注
dim totalrecords,totalpages
sqlstr="select count(id) as recordsum from table1"
set rs=conn.execute(sqlstr,0,1)
totalrecords=rs("recordsum")
if int(totalrecords/pagesize)=totalrecords/pagesize then
totalpages=totalrecords/pagesize
else
totalpages=int(totalrecords/pagesize)+1
end if
rs.close
set rs=nothing
dim page
page=request("page") '获取当前要查看的页码
if isnumeric(page)=false then
response.write "<script language=javascript>alert('参数错误!');"
response.write "window.close();</script>"
response.end
end if
if page="" or page<1 then page=1
if page-totalpages>0 then page=totalpages
page=int(page)
if page=1 then
sql="select top "&pagesize&" id,title,time from table1 order by time desc"
else
'最物渗主要看懂下面这句,选择的就是小于上一页最后一条记录的发布消息时间,共计取pagesize条知蚂袜
sql="select top "&pagesize&" id,title,time from table1 where time<(select min (time) from (select top "&pagesize*(page-1)&" time from table1 order by time desc) as t) order by time desc"
end if
set rs = server.createobject ("adodb.recordset")
rs.open sql,conn,1,1
do while not rs.eof
response.write "每条记录信息:"&rs("id")&"<br>"
rs.movenext
loop
rs.close
set rs=nothing
''翻页代码省略
%>
W_Xy_Andy
2012-07-03 · TA获得超过169个赞
知道小有建树答主
回答量:570
采纳率:0%
帮助的人:214万
展开全部
个人觉得第二种也用第一种方法写,主要的区别仅仅是sql语句的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友978affb
2012-07-03 · TA获得超过366个赞
知道小有建树答主
回答量:487
采纳率:0%
帮助的人:396万
展开全部
使用分页函数
'分页函数
'格式为:共有 13 条记录 第[1 2 3 4 5〕 页
function page_split(pagesize,currentpage,filename,rss,svar)
dim splitStr
if currentpage<>"" then
currentpage=cint(currentpage)
else
currentpage=1
end if
rss.pagesize=pagesize
rss.AbsolutePage=currentpage

splitStr=splitStr& "共有 "&rss.recordcount&" 条记录 "
for i=1 to rss.PageCount
if i=currentpage then
splitStr=splitStr& "[<font class=red>"兆桥乱&i&"</font>]"
else

splitStr=splitStr& "[" &"<a href="&fileName&"?page=" &i &svar&">" &i &"族档</a>" &"]"
end if
next
page_split=splitStr

end function

调用方式:
<%
pagesize=16 '每页显示记录数目
page=request("page")
if page="" then
page=1
else
page=cint(page)
end if

set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
if not rs.eof then
page_i=page_split(pagesize,page,"news.asp",rs,"")'调用函数赋值给page_i,在后消历面相应的位置调用显示page_i
num=0
do while not rs.eof and num<pagesize
'输出信息
num=num+1
rs.movenext
loop
else
end if
rs.close
set rs=nothing
%>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式