【发布时间】:2017-04-25 22:15:51
【问题描述】:
以下代码没有返回任何结果:
search = "'%" & Request.QueryString("itemname") & "%'"
Set cmd = Server.CreateObject("ADODB.COMMAND")
Set cmd.ActiveConnection = conn
sql = ""
sql = sql & "DECLARE @search varchar;"
sql = sql & "SET @search = ?;"
sql = sql & "SELECT ID, itemname, itemtype FROM vw_items WHERE itemname LIKE @search"
cmd.CommandText = sql
cmd.CommandType = adCmdText
response.write("<strong>You searched for:</strong> " & search & "<br /><br
/>")
cmd.Parameters.Append cmd.CreateParameter("@search", adVarchar, adParamInput, 50, search)
set rs = cmd.Execute
else
search = null
strSQL2 = "SELECT * FROM vw_items"
set rs = server.CreateObject("ADODB.Recordset")
rs.open strSQL2,conn
end if
我已经看到了这个答案:ADO parameterised query not returning any result 并尝试修复我的但没有运气
任何帮助将不胜感激
【问题讨论】:
-
因为您使用参数化查询,所以在创建参数时会推断类型,因此不需要在
search变量周围加上单引号 (')本质上,在执行ADODB.Command时,它正在执行WHERE itemname LIKE ''%youritemname%'',而您实际上希望它是WHERE itemname LIKE '%youritemname%'。将search变量更改为search = "%" & Request.QueryString("itemname") & "%"以修复它。 -
你确定你使用 MySQL,因为它看起来很像 MS SQL Server T-SQL?
-
这个“搜索”有返回值吗?
标签: sql-server vbscript parameters asp-classic adodb