关于asp查询的问题,急急急!

我写了一段asp代码用来提供查询功能,代码如下:
<%
cn=request.form("company")
%>

<%
set conn=server.CreateObject("adodb.connection")
DBPath = Server.MapPath("db1.mdb")
conn.open "provider=microsoft.jet.oledb.4.0; data source="&DBpath

if cn<>"" then
exec="select * from info where cn like '%" & cn & "%'"
else
response.write "查询条件不能为空!!!"
end if

set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
运行的时候ie总是提示
错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
请高高手帮忙看一下!!!

出错的原因是当cn为空(也就是cn="")时,exec没有被赋值,后面的rs.open exec,conn,1,1依旧会运行(自然就出错了)

把这段改一下:
if cn<>"" then
exec="select * from info where cn like '%" & cn & "%'"
else
response.write "查询条件不能为空!!!"
end if
修改为:
IF Len(Trim(cn))<1 Then
Response.Write "查询条件不能为空"
Response.End()
Else
exec="select * from info where cn like '%" & cn & "%'"
End IF

或者,你可以把
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
这两行放到Else之前去运行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-28
<%
cn=request.form("company")
%>

<%
set conn=server.CreateObject("adodb.connection")
DBPath = Server.MapPath("db1.mdb")
conn.open "provider=microsoft.jet.oledb.4.0; data source="&DBpath

if cn<>"" then
exec="select * from info where cn like '%" & cn & "%'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
else
response.write "查询条件不能为空!!!"
end if
%>
第2个回答  2010-09-28
首先,你的OPEN不能放到IF之外,否则EXEC这个字段是什么?其次,我也没发现什么问题!
第3个回答  2010-09-28
如果cn等于空的时候,你的exec就没有值.
那么rs.open exec,conn,1,1这句话肯定就会出错了.

你应该把这句
改成
if cn<>"" then
exec="select * from info where cn like '%" & cn & "%'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
else
response.write "查询条件不能为空!!!"
response.end
end if

关于asp查询的问题,急急急!
出错的原因是当cn为空(也就是cn="")时,exec没有被赋值,后面的rs.open exec,conn,1,1依旧会运行(自然就出错了)把这段改一下:if cn<>"" then exec="select * from info where cn like '%" & cn & "%'"else response.write "查询条件不能为空!!!"end if 修改为:IF Len(Tri...

asp+access 查询出错!!!急..
很明显,是权限问题 文件夹选项--->查看下有一个 使用简单文件共享(推荐) 把这个前面的勾号去掉。然后右击你放asp文件的文件夹,选择属性--->安全,把user的权限改为完全控制。ok了 还不行的话再问

asp高级搜索代码紧急求救!!!
是因为你翻页的时候,没有把参数带过去,你可以在文件的最后添加如下代码: <input type=hidden name=province value="<%=Request.Form("province")%>"> <input type=hidden name=city value="<%=Request.Form("city")%>"> <input type=hidden name=mysort value="<%=Request.Form("mysort"...

asp语法错误 (操作符丢失) 在查询表达式 ,急!!!
变量 no 没有值的原因吧,导致 sql 语句 只有前面的部分,,肯定语法错误了 你检查下 变量 no 是否有值

asp提交查询后分页出错,急啊!!!
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点:(1)利用ASP可以实现突破静态...

急!!asp高手请进,颇有难度的问题请教
用分组实现。select count(*)'counts',user from article DESC group by user order by counts 一开始把order by counts写错顺序了 随便你用的是MS SQL还是Access数据库,SQL语句是通用的。估计你的连接字符串有错误。

急急急!!asp.net中为什么总报错Exception: 必须声明标量变量 "@name...
1. sql查询语句最后@password的后面多了个分号。我记得分号只有老一些的数据库才有以分号结束的要求。2. 你构造的par查询参数组,并没有和cmd绑定,你需要使用command.Parameters.Add()等方式,把参数对象与cmd对象绑定。我想,最大的问题是出在这里。

急!求助ASP多条件OR单条件查询
建议拼串查询 Sql = "SELECT * FROM MEMBER WHERE 1=1 "IF REQUEST.FORM("A")<>"" THEN Sql = " AND A='"&REQUEST.FORM("A")&"'"END IF IF REQUEST.FORM("B")<>"" OR REQUEST.FORM("C") THEN Sql = " AND (B=REQUEST.FORM("B") OR C=REQUEST.FORM("C"))"END IF S...

ASP的问题...在线等 急!!!
sql="select * from userdate where user1='" & user & "'"'rs.open sql,conn,1,1 '临时调用更新新的密码到数据库中 rs.open sql,conn,2,3 rs("pwss1") = md5(pass)rs.update response.end '更新完成,把上面的代码注释掉,把更新之前的代码去掉注释 if rs("End_Time")<>"" then...

有关asp急!!
在处理asp问题时,首先要明确的是,asp运行是否正常。如果asp可以正常运行,那么问题可能不在asp本身,而可能是环境配置或者路径设置上的问题。如果在尝试运行asp页面时,页面中显示出了文件目录,这通常是由于IIS配置不当导致的。IIS服务器上默认会显示目录列表,这种行为通常是为了方便服务器管理员在不打开...

相似回答
大家正在搜