今天我整天都在绞尽脑汁。 我有以下ASP代码,它使用来自下拉框的Request.Querystring输入 启动一个选择语句。 querystrinch确实显示在?= URL中,但只能使用 Microsoft SQL DB中的数字列。我无法查找名称或简单的3个字符字段。
CODE:
If Request.QueryString("m") > 0 Then
filterID = Request.QueryString("m")
filterColmn = "imDegree"
Else filterID = 0
End If
If filterID > 0 Then
SQlQuery = "SELECT * FROM v_InternImport WHERE iID IN (SELECT iID FROM v_InternImport WHERE " & filterColmn & " = " & filterID & ")"
End If
End If
我理解这个选择语句作为其中的一个子选择,但我甚至无法从我的数据库中得到一个明确的结果。 select语句引用相同的视图来填充之前加载的主asp页面并且显示正常吗?
答案 0 :(得分:1)
将字符串传递给SQL Server时,需要用单引号将其包围。
传递号码时,不要使用引号。
所以,当你说(总结)时
SELECT * FROM table WHERE filterColumn = filterID
你应该发一个号码。
匹配字符串:
SELECT * FROM table WHERE filterColumn = 'filterID'
这假设您已经解决了评论者提到的有关您是否在filterID
变量中有值的任何其他问题。我衷心同意使用参数化查询的建议。
修改:单引号放在双引号内。
SQlQuery = "SELECT * FROM v_InternImport
WHERE iID IN (SELECT iID FROM v_InternImport
WHERE " & filterColmn & " = '" & filterID & "')"