日期:2014-05-16  浏览次数:20851 次

继续asp报:至少一个参数没有被指定值 换成数字的就又出错了。
在前面这个贴子中,已解决了,段是中文的错,换成数字怊id又错了。。应该怎么样解决呢。

http://bbs.csdn.net/topics/390324682

错误类型:
Microsoft JET Database Engine (0x80040E10)
至少一个参数没有被指定值。

<%
set rs=server.createobject("adodb.recordset")
sql="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where name="&request.QueryString("name")
rs.open sql,conn,1,1
%> 

这个是正确的sql="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where [name]='"&request.QueryString("name")&"'" 
这个也对的。sql="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where name='"&request.QueryString("name") &"'"


上面中的name是中文的。如name=张三,name=李四。aciid是数字如aciid=1,aciid=2,……。现在用="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where aciid=?????应该怎么样改。谢谢。
------解决方案--------------------


sql="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where aciid="&request.QueryString("aciid")

数值的不需要引号
------解决方案--------------------
sql="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where name='"&request.QueryString("name") &"' or aciid="&request.QueryString("aciid")
------解决方案--------------------
最后不要"号,但这种不过滤字符直接SQL的太不安全了。
------解决方案--------------------
sql="select name,dizi,tel,bookcount,email,luzi,danhao,kaite,aciid from shop where name='"&request.QueryString("name") &"' and aciid="&request.QueryString("aciid")
多条件查询要加and或者or