为什么不能分页了呢?

penniless 2003-06-29 11:08:41
学习中遇到的一个问题:

1、本来时一个asp+access数据库的查询页面,并对得到的recordset进行分页显示-------正确。
2、将该access数据库转换到aql server,再asp+aql进行暑假查询,和上面的一样,但是在分页显示的时候出错了。asp+aql得到的recordset的recordcount和pagecount都是-1;但是实际的记录数不是0。
...全文
77 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhanzhangyi 2003-07-03
  • 打赏
  • 举报
回复
在Conn.Open()之前加下面一条语句

Conn.CursorLocation = 3
bluemoon0001 2003-07-03
  • 打赏
  • 举报
回复
键的原因。
bluemoon0001 2003-07-03
  • 打赏
  • 举报
回复
是的,有很多种原因可以造成这种出现-1的情况,我前不久也遇到过这种情况,有的是因为查询语句,也有的是因为用了,conn.excute("sql语句"),(不是说只要用了这个语句都会出现-1的情况,),还有就是因为数据表中没有主键的原因。象他上面说的这种情况可能就是因为没有主
cloudchen 2003-07-03
  • 打赏
  • 举报
回复
这和主键也有关系。。。。?
bluemoon0001 2003-07-03
  • 打赏
  • 举报
回复
当你从access把数据表导到SQL Server 中时,那导入的只是数据表中的数据,表的结构并没有导进去,也就是说当你的表在access中有主键时,这时在SQL Server中就没有了,你要重新设置一下主键就OK了,显示为-1,就是这个原因。
changechange 2003-07-03
  • 打赏
  • 举报
回复
rs.open strsql,conn, 后面一共有3个参数,全部写全才行的,很多人只写了前面的1,1最后一个却不写,access 转到 sqlserver的时候很容易出错
zhxhjj 2003-07-03
  • 打赏
  • 举报
回复
用这种方式:

<%set rs= Server.CreateObject("adodb.recordset")
rs.open "select * from table" ,conn,1,1

'获得页数
page=request.QueryString("page")
'定义每页显示10条记录
rs.pagesize=10
'把获得的页数赋给记录集当前页属性
rs.absolutepage=page

'打印每页记录
for page=1 to rs.pagesize
if not rs.eof then
response.write (rs("id")&rs("name")&"<br>")
rs.movenext
end if
next
%>
<P>共有<%=rs.pagecount%>页,当前页<%=request.QueryString("page")%>,共有<%=rs.recordcount%>条记录
,<%=request.QueryString("page")%>/<%=rs.pagecount%></p>

<%'判断是否为首页
if request.QueryString("page")<>1 then
'打印带连接的<< <符号%>
<a href=333.asp?page=1>首页</a>
<a href=333.asp?page=<%=request.QueryString("page")-1%>>上一页</a>
<%else
'否则打印不带连接的<< <符号
response.write("首页 上一页")
end if

'判断是否为尾页
if cint(request.QueryString("page"))=rs.pagecount then
'打印不带连接的> >>符号
response.write("下一页 尾页")
else
'否则打印带连接的> >>符号%>
<a href=333.asp?page=<%=request.QueryString("page")+1%>>下一页</a>
<a href=333.asp?page=<%=rs.pagecount%>>尾页</a>
<%end if
rs.close
conn.close%>
iThinkPad 2003-07-03
  • 打赏
  • 举报
回复
是数据库打开时的游标类型不支持,所以才导致recordcount=-1

这是一个记录集的分页程序

sub PageUpDown(strTabName)

dim intCurPage,intC,intPageNum,intSelRecCnt

InitDataBase

intCurPage=Cint(Request.QueryString("Page"))
if intCurPage=0 then intCurPage=1
set adoRec=Server.CreateObject("adodb.recordset")
adoRec.CursorLocation = adUseClient
adoRec.CursorType = adOpenStatic
adoRec.LockType = adLockOptimistic
strSQL="SELECT * FROM " & strTabName
adoRec.Open strSQL,strCnn,,,adcmdtext
If adoRec.Eof then Exit Sub
adorec.pagesize=intpagesize
adorec.absolutepage=intcurpage
intpagenum=adorec.pagecount

if intcurpage >= 1 then
Response.Write "<font class='tb1'>" & _
"「<a href='Edit_hbxw.asp?page=1&tb=" & strTabName & _
"'>首页</a>」</font>"
End if
if intcurpage > 1 then
Response.write "<font class='tb1'>「<a href='Edit_hbxw.asp?page=" & _
intcurpage - 1 & "&tb=" & strTabName & _
"'>上页</a>」</font>"
End if
if intcurpage < intpagenum then
Response.write "<font class='tb1'>「<a href='Edit_hbxw.asp?page=" & _
intcurpage + 1 & "&tb=" & strTabName & _
"'>下页</a>」</font>"
End if
if intcurpage <= intpagenum then
Response.write "<font class='tb1'>「<a href='Edit_hbxw.asp?page=" & _
intpagenum & "&tb=" & strTabName & "'>末页</a>」</font>"
End if
response.write "<font class='tb1'> 共" & adorec.recordcount & "条记录,第" & _
intcurpage & "/" & intpagenum & "页," & intPageSize & _
"条/页  </font>"
adorec.close

FreeDataBase
end sub
Gswan 2003-07-02
  • 打赏
  • 举报
回复
rs.conn sql,conn,1,1
就可以了!
不加后面的 1,1
好像就是不行,反正我得出的结果就是这样!
俺也想知道怎么分页!
我的分页,只能显示一页,再查询的时候就会显示,没有查询到结果,谁能给出解释?
year81s 2003-06-29
  • 打赏
  • 举报
回复
把你的代码贴出来看看
penniless 2003-06-29
  • 打赏
  • 举报
回复
在页面里,直接又response.write可以输出recordset中的记录啊
pimple 2003-06-29
  • 打赏
  • 举报
回复
把sql查询在分析器里试试,看出来几条记录.

28,391

社区成员

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

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