请帮我看下这段代码错在哪里(100分)

  • 主题发起人 主题发起人 hk_zcp
  • 开始时间 开始时间
H

hk_zcp

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在做一个查询下面这段代码是要求用户输入查询条件,如果满足就打开查询结果窗口。
可是现在一加where 条件就显示找不到记录,请问问题出在哪里?如果有哪位高手帮我解决了我会另外再送200分!
<!--#include file="conn.asp"-->
<%
dim s_tsr
dim s_dh
dim s_sj
s_tsr=replace(trim(request("trs")),"'","")
s_dh=replace(trim(Request("dh")),"'","")
s_sj=replace(trim(Request("sj")),"'","")
sql="select * from tsjb where tsr='"&amp;s_tsr&amp;"' and dh='"&amp;s_dh&amp;"' and sj='"&amp;s_sj&amp;"'"
rs.open sql,conn,1,1
if not rs.eof then
Session("open")=True
Session("s_tsr")=s_tsr

Response.Redirect "ts_cx_list.asp"
else
response.write"no recordset"
end if
%>
 
&amp;s_tsr&amp; 前后加个&amp; 是啥意思呀? VB里面的不怎么熟.
 
没有高手吗
 
你在rs.open前先用
response.write sql &amp; "<br>"
输出SQL,然后复制这个SQL去数据库查一下看有没有记录先
 
asp N久年前弄过
楼上的正解,应该是你SQL 条件组装后有问题
 
轻舞肥羊,你好!
我按你说的执行以后显示如下的错误:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
轻舞肥羊,请问这是什么原因?
 
检查下 字段类型
看看是不是还有数字、日期等类型
 
调试时间把
on error resume next 注释掉呢?
 
应该是你拼出来的SQL不对
我让你把输出的SQL放到查询分析器里执行看看结果
可查询分析器里怎么会有ADODB.Recordset这个东东?
 
轻舞肥羊
我刚才又调试了,语句都没问题,现在是我一执行后,不弹出第一个窗口,而是直接弹出
Response.Redirect "ts_cx_list.asp" 语句调用的窗口!但 Session("s_tsr")=s_tsr中的变量确传不到第二个窗口(ts_cx_list.asp)中!能给我做个解释吗?
 
Session不能传递参数可能是IIS设置有问题,建个新的站点用默认设置试试,记得重启IIS
 
我新建站点时,测试服务器选项中“服务器模型”选了“asp vbscript”访问是:本地网。IIS中除了主目录做了改动外,其他的我都没有改!
 
而且,我去掉WHERE子句后,确显示找不到数据的提示。也就是执行了(response.write"no recordset")语句
 
轻舞肥羊,你能给我个QQ吗,我把整个代码发给你,你帮我看下,可以吗?
 
轻舞肥羊
我刚才换了个表,用同样的代码执行没有任何问题,表中没有日期型字段和备注型字段,请问是这个原因吗。
 
你现在的问题到底是什么?Session内容失效还是查询不到数据?
查询不到数据就是SQL问题,Session内容失效就是配置问题,一般不是新开的IE窗口的话不会重新开始一个Session的
 
轻舞肥羊
第一个问题我已解决,现在是session中变量无法传递到另外一个表单中,我的IIS只是把主目录设置了一下其他的我都按缺省的,也重启了IIS,还是传不过来变量!请问是什么原因,有其他的方法吗?
 
轻舞肥羊,请帮我看下:这是接收session传递变量的窗体,具体代码如下:
<!--#include file="conn.asp"-->
<% dim theid
if Session("open")<>True then
Response.Redirect "ts_login.asp"
end if
theid=Session("s_tsr")
sql="select * from ts where tsr=&amp;theid&amp;"

rs.open sql,conn,1,1%>
 
哈哈.....终于把问题给解决了!
轻舞肥羊谢谢你了!我给你加50分
 
后退
顶部