我正在尝试用C#编写基本查询,其中包括使用'%'修饰符。
这是我的问题:
SELECT userName
FROM tblUserInformation
WHERE userName LIKE %@userNameQuery%
当我运行时,我得到一个SQL异常说
@userNameQuery附近存在语法错误。
之前我遇到过与SQL查询和C#sql查询字符串的类似差异,但我不确定如何解决这个问题。我试过了:
SELECT userID
FROM tblUserInformation
WHERE userName LIKE '%'@userNameQuery'%'
下面的一个不会抛出异常但不返回任何结果。它应该是因为我可以直接对数据库运行相同的查询,并返回许多结果。
SELECT userName
FROM tblUserInformation
WHERE userName LIKE '%@userNameQuery%'
我这样做是否正确?
此外,@userNameQuery
已正确填写SqlParameter,并且是正确的数据类型等。
尝试了上面的两个和第二个工作(没有返回结果)我确信我的查询字符串中没有语法错误(额外的分号或缺少“)。
感谢您的时间!
答案 0 :(得分:5)
您需要在参数的值中传入%
,而不是在查询本身中传递它。
SELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery
@userNameQuery
的位置%my query%
。
答案 1 :(得分:3)
请尝试:
like '%' + @userNameQuery + '%'
答案 2 :(得分:1)
我建议像这样使用它:
query
写为SELECT userName from tblUserInformation WHERE
userName LIKE @userNameQuery
确保您绑定的string
作为参数@userNameQuery
包含必要的%
,即将其声明为
var userName = @"%name%";