ASP调用ACCESS怎样返回下一数据的ID?
我想在ASP页面加入分页,但是由于数据库用的比较乱,所以ID不是连续的。(比如说这行数据的ID=1,下一行的ID是3,因为ID=2的数据被删掉了),我用了DIMii=re...
我想在ASP页面加入分页,但是由于数据库用的比较乱,所以ID不是连续的。(比如说这行数据的ID=1,下一行的ID是3,因为ID=2的数据被删掉了),我用了DIM i i=request("id")来定位本页的ID,然后想用ahref="news.asp?id=<%=i+1%>来进入下一页,但是因为ID不是连续的所以有的时候就是空白页。
数据库如下:
ID TITLE WORDS
1 AAA BBB
3 BBB CCC
12 CCC DDD
如果我在asp?id=3这一页怎么样返回数据库里上一条和下一条数据的ID数字?
我不需要分页技术,我也不可能使用分页,因为ID不是相连的,我想知道的是除了重建数据库还有什么办法实现分页?!!!!!!
简单点说,我就是要提取出上一行和下一行数据的ID!!!!! 展开
数据库如下:
ID TITLE WORDS
1 AAA BBB
3 BBB CCC
12 CCC DDD
如果我在asp?id=3这一页怎么样返回数据库里上一条和下一条数据的ID数字?
我不需要分页技术,我也不可能使用分页,因为ID不是相连的,我想知道的是除了重建数据库还有什么办法实现分页?!!!!!!
简单点说,我就是要提取出上一行和下一行数据的ID!!!!! 展开
7个回答
展开全部
这是一个非常简单的问题,但是上面的兄弟将问题复杂化了,
我的建议是:
如果你的记录是按ID从小到大排序的话,那么解决的办法是:
在调用时使用: ahref="news.asp?id=<%=i%> '注意不是i+1,是i
在你的news.asp程序中加入一个条件语句:
TargetID=request("id")
SQL="select top 1 * from 表名 where ID>" & TargetID & " Order By ID"
这样你取得的记录就是紧临的下一条了
……
我的建议是:
如果你的记录是按ID从小到大排序的话,那么解决的办法是:
在调用时使用: ahref="news.asp?id=<%=i%> '注意不是i+1,是i
在你的news.asp程序中加入一个条件语句:
TargetID=request("id")
SQL="select top 1 * from 表名 where ID>" & TargetID & " Order By ID"
这样你取得的记录就是紧临的下一条了
……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个sql语句就可以让你的id连续:"select * from 表名 Order By ID"
你不是想知道上一行和下一行的id吗 ?
那就 再设2个变量一起传到下一页ahref="news.asp?id=<%=i%> & PreviousId=<%=i-1%> & NextId=<%i+1%>
(PreviousId表示上一行id,nextid表示下一行id)
这样想是不是很简单呢
你不是想知道上一行和下一行的id吗 ?
那就 再设2个变量一起传到下一页ahref="news.asp?id=<%=i%> & PreviousId=<%=i-1%> & NextId=<%i+1%>
(PreviousId表示上一行id,nextid表示下一行id)
这样想是不是很简单呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇过这样的问题.实现起来比较麻烦..我把我的代码copy给你看,主要看SQL.应该很好理解.不懂还可以M我.QQ5789243教到你懂.散分给我就行.
<%
id1 = request("id")
exec1 = "SELECT TOP 1 * FROM bmm WHERE id < "&id1&" ORDER BY id DESC"
set rs1=server.createobject("adodb.recordset")
rs1.open exec1,conn,1,1
response.write "<li>上一位学员: "
if Not rs1.eof then
response.write "<a href="
response.write "ck.asp?id="
response.write rs1("id")
response.write ">"
response.write rs1("name")
response.write "</a>"
else
response.write "没有上一位了"
end if
rs1.Close
set exec1=Nothing
%>
//下一页
<%
id2 = request("id")
exec2 = "SELECT TOP 1 * FROM bmm WHERE id > "&id2
set rs2=server.createobject("adodb.recordset")
rs2.open exec2,conn,1,1
response.write "<li>下一位学员: "
if Not rs2.eof then
response.write "<a href="
response.write "ck.asp?id="
response.write rs2("id")
response.write ">"
response.write rs2("name")
response.write "</a>"
else
response.write "没有下一位了"
end if
rs2.Close
set exec2=Nothing
%>
<%
id1 = request("id")
exec1 = "SELECT TOP 1 * FROM bmm WHERE id < "&id1&" ORDER BY id DESC"
set rs1=server.createobject("adodb.recordset")
rs1.open exec1,conn,1,1
response.write "<li>上一位学员: "
if Not rs1.eof then
response.write "<a href="
response.write "ck.asp?id="
response.write rs1("id")
response.write ">"
response.write rs1("name")
response.write "</a>"
else
response.write "没有上一位了"
end if
rs1.Close
set exec1=Nothing
%>
//下一页
<%
id2 = request("id")
exec2 = "SELECT TOP 1 * FROM bmm WHERE id > "&id2
set rs2=server.createobject("adodb.recordset")
rs2.open exec2,conn,1,1
response.write "<li>下一位学员: "
if Not rs2.eof then
response.write "<a href="
response.write "ck.asp?id="
response.write rs2("id")
response.write ">"
response.write rs2("name")
response.write "</a>"
else
response.write "没有下一位了"
end if
rs2.Close
set exec2=Nothing
%>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rs.recordcount方法可以返回读取的字段数量 。
另外,如果你分页,肯定 会事先设定好每页的分页数量吧?
比方说每页20条。
perpage=20
page=request.querystring("currentpage") '从浏览器端返回页数
rs.moveto (page*(perpage-1)+1) ‘把字段指针移到当前页的第一条
for i=0 to 19
response.write(......) '输出你想要的东西
rs.movenext
next
你的,明白?
另外,如果你分页,肯定 会事先设定好每页的分页数量吧?
比方说每页20条。
perpage=20
page=request.querystring("currentpage") '从浏览器端返回页数
rs.moveto (page*(perpage-1)+1) ‘把字段指针移到当前页的第一条
for i=0 to 19
response.write(......) '输出你想要的东西
rs.movenext
next
你的,明白?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这问题是个问题,但我没遇到过,分页技术应该不是只可以用数据库里面的ID,你可以写一个分页函数来解决这个问题,建议您换个思路,这种思路不好行啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询