表单变量传递不能分页显示吗?

dwjhai 2009-08-05 06:16:52
在一个页面中设置了表单变量POST传递,在另一个页面中显示数据库表中的信息第一页显示正常,点下一页后提示如下:
ADODB.Field 错误 '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/display3.asp,行367

代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/db1.asp" -->
<%
Dim Recordset5__MMColParam
Recordset5__MMColParam = "1"
If (Request.Form("xmname") <> "") Then
Recordset5__MMColParam = Request.Form("xmname")
End If
%>
<%
Dim Recordset5
Dim Recordset5_numRows

Set Recordset5 = Server.CreateObject("ADODB.Recordset")
Recordset5.ActiveConnection = conn
Recordset5.Source = "SELECT * FROM test WHERE 项目名称 = '" + Replace(Recordset5__MMColParam, "'", "''") + "'"
Recordset5.CursorType = 0
Recordset5.CursorLocation = 2
Recordset5.LockType = 1
Recordset5.Open()

Recordset5_numRows = 0
%>
……
<body>
<div align="center">
<p class="style1"> </p>
<p class="style1">项 目 信 息 显 示
</p>
<p class="style3"><span class="style2"><span class="style3"><span class="style2">项目名称:<%=(Recordset5.Fields.Item("项目名称").Value)%> 共有<%=(Recordset5_total)%> 条记录</span>  </span> <a href="select.asp">返 回</a></span> </p> //这一行是367行!!!!!!!!!!!!1
<table border="1">
<tr>
<td>编号</td>
<td>项日编号</td>
<td>项目名称</td>
<td>项目类型</td>
<td>项目概要</td>
<td>所属地区</td>
</tr>
<% While ((Repeat1__numRows <> 0) AND (NOT Recordset5.EOF)) %>
<tr>
<td><%=(Recordset5.Fields.Item("编号").Value)%></td>
<td><%=(Recordset5.Fields.Item("项日编号").Value)%></td>
<td><%=(Recordset5.Fields.Item("项目名称").Value)%></td>
<td><%=(Recordset5.Fields.Item("项目类型").Value)%></td>
<td><%=(Recordset5.Fields.Item("项目概要").Value)%></td>
<td><%=(Recordset5.Fields.Item("所属地区").Value)%></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset5.MoveNext()
Wend
%>
</table>
<table border="0" width="50%" align="center">
<tr valign="bottom">
<td width="23%" height="40" align="center">
<% If MM_offset <> 0 Then %>
<span class="style2"><span class="style4"><a href="<%=MM_moveFirst%>">第一页</a>
<% End If ' end MM_offset <> 0 %>
</span></span></td>
<td width="31%" align="center">
<% If MM_offset <> 0 Then %>
<span class="style2"><span class="style4"><a href="<%=MM_movePrev%>">前一页</a>
<% End If ' end MM_offset <> 0 %>
</span></span></td>
<td width="23%" align="center">
<% If Not MM_atTotal Then %>
<span class="style2"><span class="style4"><a href="<%=MM_moveNext%>">下一页</a>
<% End If ' end Not MM_atTotal %>
</span></span></td>
<td width="23%" align="center">
<% If Not MM_atTotal Then %>
<span class="style2"><span class="style4"><a href="<%=MM_moveLast%>">最后一页</a>
<% End If ' end Not MM_atTotal %>
</span></span></td>
</tr>
</table>
<p class="style3"><span class="style2"><a href="select.asp">返 回</a></span> </p>
</div>
</body>
</html>
<%
Recordset5.Close()
Set Recordset5 = Nothing
%>
...全文
52 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dwjhai 2009-08-06
  • 打赏
  • 举报
回复
试了一上午终于找到原因了!解快方法如下:
原来的代码:
<!--#include file="Connections/db1.asp" -->
<%
Dim Recordset5__MMColParam
Recordset5__MMColParam = "1"
If (Request.Form("xmname") <> "") Then
Recordset5__MMColParam = Request.Form("xmname")
End If
%>
……
改成如下:
<!--#include file="Connections/db1.asp" -->
<%
Dim Recordset5__MMColParam
Recordset5__MMColParam = Request("xmname")
%>
……
去掉这个IF语句就可以了!
3楼的代码我试过了,加上用DV生成的记录集改动后,下一页也是不能显示!显示的是“NO DATA”!原因只能锁定到表单传递上了,后来试来试去,就是那个开头的IF语句造成的!去掉IF语句直接传值就可以了!

request.querystring() 是用来接收地址里面后面的内容
request.form()是用来接收表单递交来的数据
request("*") 就无论采用的是以上哪种方法的字段值都可以读取
dwjhai 2009-08-06
  • 打赏
  • 举报
回复
嗯,第一次接触ASP,好多代码不懂,只是先做个简单的成品试验一下!
谢谢各位指点了!
renzaijiang 2009-08-05
  • 打赏
  • 举报
回复
你学asp一定要手写代码啊 dreamwaver只能做前台用用
mailbao 2009-08-05
  • 打赏
  • 举报
回复
参考:


<form name="form1" method="post" action="">
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#6699ff">
<tr>
<td height="20" align="center"><font color="#FFFFFF"><%=schORmodify%></font></td>
</tr>
<tr>
<td height="100" bgcolor="#FFFFFF">
<%
Const MaxPerPage=10
dim totalPut
dim CurrentPage
dim TotalPages
dim j
dim sql
if Not isempty(request("page")) then
currentPage=Cint(request("page"))
else
currentPage=1
end If
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from [ProjectItem] where Menu_ZH like '%"&selectkey&"%' order by ID desc",conn,1,1
if rs.eof And rs.bof then
Response.Write "<p align='center' class='contents'> No data!</p>"
else
totalPut=rs.recordcount

if currentpage<1 then
currentpage=1
end if

if (currentpage-1)*MaxPerPage>totalput then
if (totalPut mod MaxPerPage)=0 then
currentpage= totalPut \ MaxPerPage
else
currentpage= totalPut \ MaxPerPage + 1
end if
end if

if currentPage=1 then
showContent
showpage totalput,MaxPerPage,"index.asp"
else
if (currentPage-1)*MaxPerPage<totalPut then
rs.move (currentPage-1)*MaxPerPage
dim bookmark
bookmark=rs.bookmark
showContent
showpage totalput,MaxPerPage,"index.asp"
else
currentPage=1
showContent
showpage totalput,MaxPerPage,"index.asp"
end if
end if
end if

sub showContent
dim i
i=0%>
<table width="95%" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="#FFFFFF" align="center" height="20">
<td width="20%"><font color='red'><B><%=txtId%></B></font></td>
<td width="30%"><font color='red'><B><%=txtName%>Menu_ZH</B></font></td>
<td width="40%"><font color='red'><B><%=txtName%>Menu_EN</B></font></td>
<td width="10%"><font color='red'><B><%=selectBt%></B></font></td>
</tr>
<%do while not rs.eof%>
<tr bgcolor="#FFFFFF" align="center">
<td><%=rs("ID")%></td>
<td align="left"><a href=edit.asp?id=<%=rs("ID")%>><%=rs("Menu_ZH")%></a></td>
<td align="left"><a href=edit.asp?id=<%=rs("ID")%>><%=rs("Menu_EN")%></a></td>
<td><input name="selectid" type="checkbox" id="selectid" value="<%=rs("ID")%>"></td>
</tr>
<%i=i+1
if i>=MaxPerPage then Exit Do
rs.movenext
loop
rs.close
set rs=nothing%>
<tr bgcolor="#FFFFFF">
<td height="30" colspan="3" align="right"><%=selectAll%> <input type="checkbox" name=chkall onClick="CheckAll(this.form)"> <input type="submit" name="action" class="button"value="<%=delBt%>" onClick="{if(confirm('Are you sure delete?')){this.document.Prodlist.submit();return true;}return false;}"></td>
</tr>
<tr bgcolor="#EEEEEE">
<td colspan="3">
<%
End Sub

Function showpage(totalnumber,maxperpage,filename)
Dim n

If totalnumber Mod maxperpage=0 Then
n= totalnumber \ maxperpage
Else
n= totalnumber \ maxperpage+1
End If

Response.Write "<form method=Post action="&filename&"?selectm="&selectm&"&selectkey="&selectkey&" >"
Response.Write "<p align='center' class='contents'> "
If CurrentPage<2 Then
Response.Write "<font class='contents'>"&homepage&" "&prepage&"</font> "
Else
Response.Write "<a href="&filename&"?page=1&selectm="&selectm&"&selectkey="&selectkey&" class='contents'>"&homepage&"</a> "
Response.Write "<a href="&filename&"?page="¤tPage-1&"&selectm="&selectm&"&selectkey="&selectkey&" class='contents'>"&prepage&"</a> "
End If

If n-currentpage<1 Then
Response.Write "<font class='contents'>"&nextpage&" "&lastpage&"</font>"
Else
Response.Write "<a href="&filename&"?page="&(CurrentPage+1)&"&selectm="&selectm&"&selectkey="&selectkey&" class='contents'>"
Response.Write ""&nextpage&"</a> <a href="&filename&"?page="&n&"&selectm="&selectm&"&selectkey="&selectkey&" class='contents'>"&lastpage&"</a>"
End If
Response.Write "<font class='contents'> "&nowpage&"ㄩ</font><font class='contents'>"¤tPage&"</font><font class='contents'>/"&n&""&perpage&"</font> "
Response.Write "<font class='contents'> "&alltotal&"("&totalnumber&")   "
Response.Write "<font class='contents'> "&jumpto&"ㄩ</font><input type='text' name='page' size=2 maxlength=10 class=smallInput value="¤tpage&">"
Response.Write " <input type='submit' class='button' value='"&jumptoBt&"' name='cndok' ></form>"
End Function
%>
</td>
</tr>
</table>
</td>
</tr>
</table></form>
mailbao 2009-08-05
  • 打赏
  • 举报
回复
感觉这是由DV直接生成的翻页代码,好繁琐,重新换过一种分页代码,以后直接套用就OK

28,406

社区成员

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

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