SQL Select语句不会仅返回char字段的数字字段

时间:2012-02-03 19:29:49

标签: sql-server-2008 select asp-classic textfield

今天我整天都在绞尽脑汁。 我有以下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页面并且显示正常吗?

1 个答案:

答案 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 & "')"