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

我写了一段asp代码用来提供查询功能,代码如下:<%cn=request.form("company")%><%setconn=server.CreateObject("... 我写了一段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)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
请高高手帮忙看一下!!!
展开
 我来答
arvy_momo
2010-09-28 · TA获得超过2350个赞
知道大有可为答主
回答量:1552
采纳率:50%
帮助的人:1002万
展开全部
出错的原因是当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之前去运行。
Storm代理
2023-07-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
百度网友b62a1949c
2010-09-28 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:143万
展开全部
<%
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
%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巴哥泡泡
2010-09-28 · TA获得超过1040个赞
知道大有可为答主
回答量:1040
采纳率:0%
帮助的人:1147万
展开全部
首先,你的OPEN不能放到IF之外,否则EXEC这个字段是什么?其次,我也没发现什么问题!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欲速则不达X
2010-09-28 · TA获得超过177个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:253万
展开全部
如果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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式