遇到麻烦了,看了一个晚上也看不出错在哪里....:(

rainxiang 2003-11-26 03:28:17
<!--#include file="conn.asp"-->
<%
t_sex=request.querystring("sex")
set crs=conn.execute("select * from music where sex='"&t_sex&"'")
if not crs.eof then
set nrs=conn.execute("select * from nclassid where id="&crs("classid"))
end if
crs.close
do while not nrs.eof
set rs=conn.execute("select * from music where classid="&nrs("id"))
response.write nrs("nclassid")
do while not rs.eof
response.write rs("歌手")
rs.movenext
loop
rs.close
nrs.movenext
loop
nrs.close
%>
这段代码是我做一个歌手列表的时候用到的一些修饰都简化了.当我将sex传到这个页面处理的时候产生了错误..出错提示的是这句
set nrs=conn.execute("select * from nclassid where id="&crs("classid"))
有错。但是我找来找去也不知道错在哪里..希望各位大哥大姐帮我看看好吗.
...全文
53 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bologna 2003-11-26
  • 打赏
  • 举报
回复
这样可以吗?
<!--#include file="conn.asp"-->
<%
t_sex=request.querystring("sex")
set crs=conn.execute("select * from music where sex='"&t_sex&"'")
if not crs.eof then
set nrs=conn.execute("select * from nclassid where id="&crs("classid"))
do while not nrs.eof
set rs=conn.execute("select * from music where classid="&nrs("id"))
response.write nrs("nclassid")
do while not rs.eof
response.write rs("歌手")
rs.movenext
loop
rs.close
nrs.movenext
loop
nrs.close
end if
crs.close
%>
DeltaCat 2003-11-26
  • 打赏
  • 举报
回复
<!--#include file="conn.asp"-->
<%
t_sex=request.querystring("sex")
on error resume next
set crs=conn.execute("select * from music where sex='"&t_sex&"'")
if not crs.eof then
set nrs=conn.execute("select * from nclassid where id="&crs("classid"))
if err<>0 then
response.write err.Description
err.clear
response.end
end if
end if

这样看看具体是什么错误信息?
rainxiang 2003-11-26
  • 打赏
  • 举报
回复
to ljupin(无情刀) :
呵呵。。没关系。先谢谢你帮我。
我想问下这样用变量先存起来跟直接放进去有什么区别吗?会不会是因为变量类型不匹配的原因呢?
rainxiang 2003-11-26
  • 打赏
  • 举报
回复
to jacklinchen(陈):
我的sex 是字符型的
数据库里有两个表 一个是表music里的classid字段是数值型的,用来连接表nclassid表里的id。id 是自动编号的,nclassid表里还有个字段是nclassid字段字符型存储姓氏开头第一个字母的。

你的意思我知道了。但是就算只记录最后一个记录集那应该也可以出结果的吧。。可是它就说我这句错了啊,是语法上错了还是逻辑上错了呢?
ljupin 2003-11-26
  • 打赏
  • 举报
回复
不好意思,弄错了:)
把crs("classid")用变量寸起来
Dim ClassID = crs("classid")
set nrs=conn.execute("select * from nclassid where id="&ClassID)
fangpeng2003 2003-11-26
  • 打赏
  • 举报
回复
set nrs=conn.execute("select * from nclassid where id="&crs("classid"))
a_zhe_20 2003-11-26
  • 打赏
  • 举报
回复
set rs=conn.execute("select * from music where classid="&nrs("id"))
response.write nrs("nclassid")
do while not rs.eof
response.write rs("歌手")
rs.movenext
loop
rs.close
+
set rs=nothing
试下

另外建议不要用conn.execute()方式打开纪录集
用rs.open sql,conn,1,1
jacklinchen 2003-11-26
  • 打赏
  • 举报
回复
你的sex是什么类型的? 是字符型的吗?
而且你nrs记录集未必是唯一的,那你在crs循环退出后, 系统只会调用最后一个nrs集
ljupin 2003-11-26
  • 打赏
  • 举报
回复
set nrs=conn.execute("select * from nclassid where id="&crs("classid")&")

28,407

社区成员

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

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