经典多选列表框SQL查询

时间:2018-01-23 20:14:24

标签: html sql-server asp-classic listbox sql-server-express

解决!
解: 在下面的代码中编辑它将是一个很好的解决方案。

strCriteria = "" & replace(tagname,", ","','") & ""


<小时/> 原始问题:

我有一个列表框,其中填充了SQL Server Express表列的内容。列表框所在的HTML表单将生成HTML表格报告。

我有经验,列表框将多个选定的值存储为VALUE1, VALUE2, VALUE3,SQL查询需要这些值为'VALUE1', 'VALUE2', 'VALUE3' - 使用gnyphs。因此,它只能选择一个值,因为查询会说'VALUE1, VALUE2, VALUE3' - 整个gnyphs。我已尝试使用替换,因为您可以在下面的代码中看到,但由于这不起作用,我不确定我是否正确接近它。

我已经做了很多谷歌搜索并发现了很多有关这方面的文章,虽然它们适用于SQL Server 2005及更早版本,并且不再支持某些功能,我相信可能会有一些我不知道的更方便的功能。

我如何做到最好?

<table class="reporttable">
<tr>
<%
dim strSQL,x,strCriteria

strCriteria = replace(tagname,", ","', '")

'Open the recordset object executing the SQL statement and return records
strSQL = "SELECT * FROM dbo.notes WHERE tag IN('" & strCriteria & "') AND ((dt < '" & dTo & "') AND (dt > '" & dFrom & "')) ORDER BY dt DESC"


set objRecordSet = objConn.Execute (strSQL)

for each x in objRecordSet.Fields
     response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
<%do until objRecordSet.EOF%>
<tr>
<%
for each x in objRecordSet.Fields
     if x.name="no" then%>
              <%else%>
         <td><%Response.Write(x.value)%> </td>
     <%end if
next
%>

<%objRecordSet.MoveNext%>
</tr>
<%
loop

objRecordSet.close
set objRecordSet=nothing
objConn.close
set objConn=nothing
%>
</table>

是的,它必须保持经典ASP,因为它必须适合一个非常愚蠢和有限的浏览器。

1 个答案:

答案 0 :(得分:0)

我对你的问题感到困惑。但我想我可能会得到你想要的答案。

你实际上是在询问如何在mutli-select-box值周围加上引号吗?

strCriteria = "'" & replace(tagname,", ","','") & "'"

每边的额外“'”开始&amp;终止引号。 (或者你称之为gnyphs)