如何在asp中数据库查询结果分页显示?
我写了一串代码,能够查询全部显示,研究了几天,想把它分页显示,都未成功,哪位先辈帮我改改下面代码,达到能够分页显示,利用“首页、上一页、下一页、末页”或用“123456…...
我写了一串代码,能够查询全部显示,研究了几天,想把它分页显示,都未成功,哪位先辈帮我改改下面代码,达到能够分页显示,利用“首页、上一页、下一页、末页”或用“123456……末页”来查看查询结果,万分感谢!
<% Option Explicit %>
<html>
<head>
<title> 成绩搜索</title>
</head>
<body>
<h2 align="center">成绩搜索</h2>
<%
'以下连接数据库,建立一个Connection对象实例db
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "wwwlink" '利用数据源连接数据库
'以下建立记录集
Dim strSql,rs,Aname,abc
Aname= Request.form("a")
strSql="Select * From link Where name like '%"&Aname&"%'Order By link_id DESC" '按降序排列显示所有记录
Set rs=db.Execute(strSql)
'以下显示数据库记录
%>
<table border="1" align="center">
<tr>
<td>姓名</td>
<td>性别</td>
<td>政治</td>
<td>语文</td>
<td>英语</td>
<td>数学</td>
<td>物理</td>
<td>化学</td>
<td>历史</td>
<td>地理</td>
<td>生物</td>
<td>总分</td>
</tr>
<%
Do While Not rs.Eof '只要不是结尾就执行循环
%>
<tr>
<td><%=rs("name")%></td>
<td><%=rs("xingbie")%></td>
<td><%=rs("zz")%></td>
<td><%=rs("yw")%></td>
<td><%=rs("yy")%></td>
<td><%=rs("sx")%></td>
<td><%=rs("wl")%></td>
<td><%=rs("hx")%></td>
<td><%=rs("ls")%></td>
<td><%=rs("dl")%></td>
<td><%=rs("sw")%></td>
<td><%=rs("zf")%></td>
</tr>
<%
rs.MoveNext '将记录指针移动到下一条记录
Loop
%>
</table>
</body>
</html>
我从siboping的代码修改中得到分页,由于我的查询是从from获取方式得到两个字段的参数(Aname和abc变量),从中进行查询,当我点“后一页”后,可能查询的两个变量数据被清除,导致查询结果改变,能说说是什么原因吗?谢谢!
Aname= Request.form("a")
abc= Request.form("name-1")
if abc<>"" and abc="名称" then
strSql="Select * From link Where name like '%"&Aname&"%'Order By link_id DESC"
elseif abc<>"" and abc="字数" then
strSql="Select * From link Where zishu like '%"&Aname&"%'Order By link_id DESC"
elseif abc<>"" and abc="拼音" then
strSql="Select * From link Where pingying like '%"&Aname&"%'Order By link_id DESC"
elseif abc<>"" and abc="类型" then
……
else
strSql="Select * From link Where name like '%"&Aname&"%'Order By link_id DESC"
end if
最后谢谢了,我采用了Response.Cookies方式把变量值保存起来,这样就不会消失了,再次谢谢!! 展开
<% Option Explicit %>
<html>
<head>
<title> 成绩搜索</title>
</head>
<body>
<h2 align="center">成绩搜索</h2>
<%
'以下连接数据库,建立一个Connection对象实例db
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "wwwlink" '利用数据源连接数据库
'以下建立记录集
Dim strSql,rs,Aname,abc
Aname= Request.form("a")
strSql="Select * From link Where name like '%"&Aname&"%'Order By link_id DESC" '按降序排列显示所有记录
Set rs=db.Execute(strSql)
'以下显示数据库记录
%>
<table border="1" align="center">
<tr>
<td>姓名</td>
<td>性别</td>
<td>政治</td>
<td>语文</td>
<td>英语</td>
<td>数学</td>
<td>物理</td>
<td>化学</td>
<td>历史</td>
<td>地理</td>
<td>生物</td>
<td>总分</td>
</tr>
<%
Do While Not rs.Eof '只要不是结尾就执行循环
%>
<tr>
<td><%=rs("name")%></td>
<td><%=rs("xingbie")%></td>
<td><%=rs("zz")%></td>
<td><%=rs("yw")%></td>
<td><%=rs("yy")%></td>
<td><%=rs("sx")%></td>
<td><%=rs("wl")%></td>
<td><%=rs("hx")%></td>
<td><%=rs("ls")%></td>
<td><%=rs("dl")%></td>
<td><%=rs("sw")%></td>
<td><%=rs("zf")%></td>
</tr>
<%
rs.MoveNext '将记录指针移动到下一条记录
Loop
%>
</table>
</body>
</html>
我从siboping的代码修改中得到分页,由于我的查询是从from获取方式得到两个字段的参数(Aname和abc变量),从中进行查询,当我点“后一页”后,可能查询的两个变量数据被清除,导致查询结果改变,能说说是什么原因吗?谢谢!
Aname= Request.form("a")
abc= Request.form("name-1")
if abc<>"" and abc="名称" then
strSql="Select * From link Where name like '%"&Aname&"%'Order By link_id DESC"
elseif abc<>"" and abc="字数" then
strSql="Select * From link Where zishu like '%"&Aname&"%'Order By link_id DESC"
elseif abc<>"" and abc="拼音" then
strSql="Select * From link Where pingying like '%"&Aname&"%'Order By link_id DESC"
elseif abc<>"" and abc="类型" then
……
else
strSql="Select * From link Where name like '%"&Aname&"%'Order By link_id DESC"
end if
最后谢谢了,我采用了Response.Cookies方式把变量值保存起来,这样就不会消失了,再次谢谢!! 展开
3个回答
展开全部
没有你的数据库,无法用你的代码测试。
你可以自己看一下面的代码。或许有用:
最简单的ASP分页代码
<%
set conn=server.createobject("adodb.connection")
conn.open("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq="&server.mappath("1.mdb"))
set rs=server.createobject("adodb.recordset")
sql="select * from student"
rs.open sql,conn,3
rs.pagesize=20
if request("page")<>"" then
epage=cint(request("page"))
if epage<1 then epage=1
if epage>rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%>
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#0000FF" 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 rs.pagesize-1
if rs.bof or rs.eof then exit for
%>
<tr bgcolor="#FFFFFF" align="center">
<td><%=rs(0).value%></td><td><%=rs(1).value%></td><td><%=rs(2).value%></td>
</tr>
<%
rs.movenext()
next
%>
</table>
<p align="center">
<a href="">首页</a>
<a href="index.asp?page=<%=epage-1%>">前一页</a>
<a href="index.asp?page=<%=epage+1%>">后一页</a>
<a href="index.asp?page=<%=rs.pagecount%>">末页</a>
</p>
<p align="center">现在是第<%=epage%>页一共有<%=rs.pagecount%>页</p>
<%
conn.close()
%>
你可以自己看一下面的代码。或许有用:
最简单的ASP分页代码
<%
set conn=server.createobject("adodb.connection")
conn.open("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq="&server.mappath("1.mdb"))
set rs=server.createobject("adodb.recordset")
sql="select * from student"
rs.open sql,conn,3
rs.pagesize=20
if request("page")<>"" then
epage=cint(request("page"))
if epage<1 then epage=1
if epage>rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%>
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#0000FF" 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 rs.pagesize-1
if rs.bof or rs.eof then exit for
%>
<tr bgcolor="#FFFFFF" align="center">
<td><%=rs(0).value%></td><td><%=rs(1).value%></td><td><%=rs(2).value%></td>
</tr>
<%
rs.movenext()
next
%>
</table>
<p align="center">
<a href="">首页</a>
<a href="index.asp?page=<%=epage-1%>">前一页</a>
<a href="index.asp?page=<%=epage+1%>">后一页</a>
<a href="index.asp?page=<%=rs.pagecount%>">末页</a>
</p>
<p align="center">现在是第<%=epage%>页一共有<%=rs.pagecount%>页</p>
<%
conn.close()
%>
参考资料: http://www.bc-cn.net/Article/web/asp/jszl/200610/4499.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询