0

我正在尝试用 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 并且是正确的数据类型等。在上面尝试过,第二个有效(没有返回结果)我确信我的查询字符串中没有语法错误(额外的分号或缺少“) .

感谢您的时间!

4

3 回答 3

5

您需要传入%参数的值,而不是在查询本身中。

SELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery

会是什么样@userNameQuery%my query%

于 2012-08-10T19:00:24.980 回答
3

请试试:

like '%' + @userNameQuery + '%'
于 2012-08-10T19:01:06.163 回答
1

我建议像这样使用它:

  1. 写你querySELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery
  2. 确保string你绑定的参数@userNameQuery包含必要的%,即声明为

    var userName = @"%name%";

于 2012-08-10T19:00:53.460 回答