100分求助!分页后"下一页"问题!最好是修改原代码!

baobu 2005-04-26 02:17:01
根据上一页面用户的操作确定变量值
<% dim cha,accord,sql
cha=request("zhang")
accord=request("tixing")
response.Write (cha)
select case cha
case "第一章 绪论"
jie="01"
case "第二章 化工技术经济分析的基本要素"
jie="02"
case "第三章 化工技术经济的基本原理"
jie="03"
case "第四章 经济评价方法"
jie="04"
case "第五章 不确定性分析及风险决策"
jie="05"
case "第六章 技术经济预测方法"
jie="06"
case "第七章 项目可行性研究"
jie="07"
end select
%>
连接数据库
<%
Set DBConnection=Server.CreateObject("ADODB.Connection")
DBConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("xiti.mdb")
DBConnection.Open Connectionstring

select case accord
case "问答题"
sql="select 代码,题文,题图 from XITI where 代码 like 'W%' and 代码 like '_"&jie&"%'"
case "计算题"
sql="select 代码,题文,题图 from XITI where 代码 like 'J%' and 代码 like '_"&jie&"%'"
end select

if sql<>Empty then
set RS=Server.CreateObject("ADODB.Recordset")
RS.Open sql, DBConnection,3,1
RS.PageSize=1

TotalPages = RS.PageCount
TotalRecords = RS.RecordCount
end if

if Not IsEmpty(request("ToPage")) then
Topage=CInt(Request("ToPage"))
if ToPage>RS.PageCount then
RS.AbsolutePage=RS.Pagecount
elseif ToPage<=0 then
RS.AbsolutePage=1
else
RS.AbsolutePage=ToPage
end if
end if
Current_Page=RS.AbsolutePage
%>
输出数据库内容
<% if RS.recordcount>0 then
RS.AbsolutePage=Current_Page
for i=1 to RS.PageSize
if RS.EOF then
exit for
end if
response.Write(RS("题文"))
next
%>
分页
<%
if Current_Page<2 then
response.Write "第一题 | 上一题 | "
else
response.Write "<a href=1_1.asp?ToPage=1&accord="&accord&"&cha="&cha&">第一题</a> | "
response.write "<a href=1_1.asp?ToPage="&cstr(Current_Page-1)&"&accord="&accord&"&cha="&cha&">上一题</a> | "
end if
if TotalPages-Current_Page<1 then
response.Write "下一题 | 最后一题"
else
response.write "<a href=1_1.asp?ToPage="&cstr(Current_Page+1)&"&accord="&accord&"&cha="&cha&">下一题</a> | "
response.Write "<a href=1_1.asp?ToPage="&TotalPages&"&accord="&accord&"&cha="&cha&">最后一题</a>"
end if
%>
<%else
response.write"  很遗憾没有找到你需要的题目!"%>
<a href="exercises.asp"><%response.Write "点此返回上一页面"%></a>
<%end if
RS.close
set RS = Nothing%>

第一页显示正常,点下一题、最后一题出现错误

错误类型:
Microsoft VBScript 运行时错误 (0x800A01A8)
缺少对象: 'RS'
/cete/main/exercises/1_1.asp, 第 88 行

第88行:if ToPage>RS.PageCount then

各位救救我啊,我真的没辙了
...全文
164 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
menrock 2005-04-26
  • 打赏
  • 举报
回复
晕,解决就好...
menrock 2005-04-26
  • 打赏
  • 举报
回复
对啊,那这一页的accord变量和cha变量都和上一页的zhang和tixing一样了啊,比如
cha=request("zhang")
accord=request("tixing")
得出cha="第一章 绪论",accord="计算题",那你在下面写
response.write "<a href=1_1.asp?ToPage="&cstr(Current_Page+1)&"&zhang="&accord&"&tixing="&cha&">下一题</a> | "
就是
response.write "<a href=1_1.asp?ToPage="&cstr(Current_Page+1)&"&zhang=计算题&tixing=第一章 绪论>下一题</a> | "
再get回本页
cha=request("zhang")就是cha="第一章 绪论"
accord=request("tixing")就是accord="计算题"
没错啊


baobu 2005-04-26
  • 打赏
  • 举报
回复
to menrock

将参数传递总的accord="&accord&"&cha="&cha&"改成
tixing="&accord&"&zhang="&cha&"

问题解决了,刚才出了点差错
baobu 2005-04-26
  • 打赏
  • 举报
回复
to menrock

将参数传递总的accord="&accord&"&cha="&cha&"改成
tixing="&accord&"&zhang="&cha&"
问题依然存在

zhang和tixing是从上一页面列表框中选择的值
baobu 2005-04-26
  • 打赏
  • 举报
回复
提到if外面去
错误类型:
ADODB.Recordset (0x800A0E78)
对象关闭时,不允许操作。
/cete/main/exercises/1_1.asp, 第 88 行
menrock 2005-04-26
  • 打赏
  • 举报
回复
if sql<>Empty then
set RS=Server.CreateObject("ADODB.Recordset")
RS.Open sql, DBConnection,3,1
RS.PageSize=1

TotalPages = RS.PageCount
TotalRecords = RS.RecordCount
else
response.write"  很遗憾没有找到你需要的题目!"%>
<a href="exercises.asp"><%response.Write "点此返回上一页面"%></a>
<----这里还要加句response.end(),防止出错
<%end if
大猫钓鱼 2005-04-26
  • 打赏
  • 举报
回复
if 和 end if中声明的"Rs"已经过期了.要不就重新声明一个,要不就yeno说的,提到if外面去.
menrock 2005-04-26
  • 打赏
  • 举报
回复
<% dim cha,accord,sql
cha=request("zhang")
accord=request("tixing")
response.Write (cha)
select case cha
case "第一章 绪论"
jie="01"
case "第二章 化工技术经济分析的基本要素"
jie="02"
case "第三章 化工技术经济的基本原理"
jie="03"
case "第四章 经济评价方法"
jie="04"
case "第五章 不确定性分析及风险决策"
jie="05"
case "第六章 技术经济预测方法"
jie="06"
case "第七章 项目可行性研究"
jie="07"
end select
%>
连接数据库
<%
Set DBConnection=Server.CreateObject("ADODB.Connection")
DBConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("xiti.mdb")
DBConnection.Open Connectionstring

select case accord
case "问答题"
sql="select 代码,题文,题图 from XITI where 代码 like 'W%' and 代码 like '_"&jie&"%'"
case "计算题"
sql="select 代码,题文,题图 from XITI where 代码 like 'J%' and 代码 like '_"&jie&"%'"
end select

if sql<>Empty then
set RS=Server.CreateObject("ADODB.Recordset")
RS.Open sql, DBConnection,3,1
RS.PageSize=1

TotalPages = RS.PageCount
TotalRecords = RS.RecordCount
else
response.write"  很遗憾没有找到你需要的题目!"%>
<a href="exercises.asp"><%response.Write "点此返回上一页面"%></a>
<%end if
if Not IsEmpty(request("ToPage")) then
Topage=CInt(Request("ToPage"))
if ToPage>RS.PageCount then
RS.AbsolutePage=RS.Pagecount
elseif ToPage<=0 then
RS.AbsolutePage=1
else
RS.AbsolutePage=ToPage
end if
end if
Current_Page=RS.AbsolutePage
%>
输出数据库内容
<% if RS.recordcount>0 then
RS.AbsolutePage=Current_Page
for i=1 to RS.PageSize
if RS.EOF then
exit for
end if
response.Write(RS("题文"))
next
%>
分页
<%
if Current_Page<2 then
response.Write "第一题 | 上一题 | "
else
response.Write "<a href=1_1.asp?ToPage=1&zhang="&accord&"&tixing="&cha&">第一题</a> | "
response.write "<a href=1_1.asp?ToPage="&cstr(Current_Page-1)&"&zhang="&accord&"&tixing="&cha&">上一题</a> | "
end if
if TotalPages-Current_Page<1 then
response.Write "下一题 | 最后一题"
else
response.write "<a href=1_1.asp?ToPage="&cstr(Current_Page+1)&"&zhang="&accord&"&tixing="&cha&">下一题</a> | "
response.Write "<a href=1_1.asp?ToPage="&TotalPages&"&zhang="&accord&"&tixing="&cha&">最后一题</a>"
end if
%>
<%else
response.write"  很遗憾没有找到你需要的题目!"%>
<a href="exercises.asp"><%response.Write "点此返回上一页面"%></a>
<%end if
RS.close
set RS = Nothing%>
尚和空四 2005-04-26
  • 打赏
  • 举报
回复
<html>
<head>
<script language="javascript">
function selectSubmit(thevalue){
if (thevalue.value=="提交1"){
document.forms[0].action="a.asp";
document.forms[0].submit();
}
if (thevalue.value=="提交2"){
document.forms[0].action="b.asp";
document.forms[0].submit();
}
}
</script>
</head>
<body>
<form>
<input name=submit1 type=button value="提交1" onclick="selectSubmit(this)">
<input name=submit2 type=button value="提交2" onclick="selectSubmit(this)">
</form>
</body>
</html>
baobu 2005-04-26
  • 打赏
  • 举报
回复
具体是什么问题啊?
阿_浩 2005-04-26
  • 打赏
  • 举报
回复
这里 set RS=Server.CreateObject("ADODB.Recordset")
RS.Open sql, DBConnection,3,1
if sql<>Empty then
‘set RS=Server.CreateObject("ADODB.Recordset")
zmgnwpu 2005-04-26
  • 打赏
  • 举报
回复
代码很乱啊,传参用汉字不好吧,set RS=Server.CreateObject("ADODB.Recordset")放在外边,不要放在一个if语句内
sunshift 2005-04-26
  • 打赏
  • 举报
回复
把数据库和源文件发过来;
love_computer@163.com
love_computer@163.com
baobu 2005-04-26
  • 打赏
  • 举报
回复
代码中有这句话了set rs=server.CreateObject ("adodb.recordset")
menrock 2005-04-26
  • 打赏
  • 举报
回复
cha=request("zhang")
accord=request("tixing")
你上面是request("zhang")和request("tixing"),下面翻页的连接get过去的却是cha和accord,所以出错了
yeno 2005-04-26
  • 打赏
  • 举报
回复
set rs=server.CreateObject ("adodb.recordset")

请先将此语句加入到最前面
yeno 2005-04-26
  • 打赏
  • 举报
回复
好久没来ASP版了,碰上我,是你的幸运

不过我笨,不会回答问题……

晕死,真是白给了你这么多分!

28,405

社区成员

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

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