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

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
%>
...全文
54 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
EXT 中文手册 1
EXT简介 3
目錄 3
下载Ext 4
开始! 4
Element:Ext的核心 4
获取多个DOM的节点 5
响应事件 5
使用Widgets 7
使用Ajax 9
EXT源码概述 11
揭示源代码 11
发布Ext源码时的一些细节 12
我应该从哪里开始? 13
适配器Adapters 13
核心Core 13
Javascript中的作用域(scope) 13
事前准备 13
定义 13
正式开始 14
window对象 14
理解作用域 15
变量的可见度 15
EXT程序规划入门 16
事前准备 16
需要些什么? 16
applayout.html 16
applayout.js 17
公开Public、私有Private、特权的Privileged? 19
重写公共变量 21
重写(Overriding)公共函数 21
DomQuery基础 22
DomQuery基础 22
扩展EXT组件 29
文件的创建 30
Let's go 33
完成 35
EXT的布局(Layout) 37
简单的例子 38
加入内容 42
开始使用Grid 51
步骤一 定义数据(Data Definition) 51
步骤二 列模型(Column Model) 52
Grid组件的简易分页 53
Grid数据 53
怎么做一个分页的Grid 54
分页栏Toolbar 55
EXT Menu组件 55
创建简易菜单 56
各种Item的类型 57
Item属性 57
在UI中摆放菜单 58
Menu的分配方式: 58
练一练 60
动态添加菜单按钮到Toolbar 61
更方便的是 61
下一步是 62
模板(Templates)起步 62
第一步 您的HTML模板 62
第二步,将数据加入到模板中 62
下一步 63
学习利用模板(Templates)的格式化功能 63
正式开始 63
下一步 64
事件处理 64
非常基础的例子 64
处理函数的作用域 64
传递参数 65
类设计 66
对象创建 66
使用构造器函数 66
方法共享 66
表单组件入门 67
表单体 67
创建表单字段 67
完成表单 68
下一步 69
为一个表单填充或提交数据 69
让我们开始吧 69
读取我们的数据 71
EXT中的继承 71
补充资料 73
Ext 2 概述 73
组件模型 Component Model 74
容器模型Container Model 78
布局 Layouts 80
Grid 82
XTemplate 83
DataView 84
其它新组件 84
EXT2简介 85
下载Ext 85
开始! 85
Element:Ext的核心 86
获取多个DOM的节点 87
响应事件 87
使用Widgets 88
編輯 使用Ajax 91
TabPanel基础 94
Step 1: 创建 HTML 骨架 94
Step 2: Ext结构的构建 96
Step 3: 创建Tab控制逻辑 97

28,405

社区成员

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

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