嗨,伙计们,我一直都有这个错误,我想不出来。当我在数据库工具中运行查询时,它就工作了,但当它在我的microsoftwebdev中运行时就不工作了。
我得到的错误是:
在“group”附近预期条件的上下文中指定的非布尔类型的表达式。
代码:
Session["string"] = "answer ='Male'";
Session["count"] = 1;
myCommandSearch = new SqlCommand("SELECT userId FROM UserAnswer WHERE @SEARCHVARIABLES GROUP by userId HAVING COUNT(*) = @VARIABLECOUNT", myConnection);
myCommandSearch.Parameters.AddWithValue("@SEARCHVARIABLES", Session["string"]);
myCommandSearch.Parameters.AddWithValue("@VARIABLECOUNT", Session["count"]);
SqlDataReader myReaderSearch = myCommandSearch.ExecuteReader();
事先谢谢你的帮助。
1条答案
按热度按时间x8goxv8g1#
这是您的问题:
参数可用于替换文字值。它们不能用来代替:
列名
表名
数据库
表达
函数名
以及任何不是常数的东西
所以,
@SEARCHVARIABLES
似乎是一根弦。假设是这样的:userId IN (1, 2, 3)
. 那么查询将是:该上下文中不允许使用字符串。因此,您将得到一个错误。