C# 如何在C T-SQL查询字符串中使用%修饰符?

C# 如何在C T-SQL查询字符串中使用%修饰符?,c#,sql-server,modifier,C#,Sql Server,Modifier,我正在尝试用C编写一个基本查询,其中包括使用“%”修饰符 我的问题是: SELECT userName FROM tblUserInformation WHERE userName LIKE %@userNameQuery% 当我运行它时,我得到一个SQL异常 在@userNameQuery附近出现语法错误 我以前在SQL查询和C SQL查询字符串方面遇到过类似的差异,但我不确定如何解决这个问题。我试过: SELECT userID FROM tblUserInformation WH

我正在尝试用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,并且是正确的数据类型等。 在尝试了以上两种方法后,第二种方法都没有返回任何结果,我确信我的查询字符串中没有多余分号或缺少语法错误

谢谢你抽出时间

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

SELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery

其中@userNameQuery类似于%my query%。

我建议这样使用它:

将您的查询写为从tblUserInformation中选择用户名,其中 类似于@userNameQuery的用户名 确保绑定为参数@userNameQuery的字符串包含必要的%,即声明为

var userName=@%name%

请尝试:

like '%' + @userNameQuery + '%'

我强烈建议使用SQL命令的SQL参数。它保持着文化的东西。这很有效,谢谢你,好心的先生。我将在6分钟内标记为正确:D