如何在 C# T-SQL 查询字符串中使用 % 修饰符?
Posted
技术标签:
【中文标题】如何在 C# T-SQL 查询字符串中使用 % 修饰符?【英文标题】:How do you use the % modifier in a C# T-SQL query string? 【发布时间】:2012-08-10 18:58:31 【问题描述】:我正在尝试用 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 并且是正确的数据类型等。
尝试了上述方法和第二个方法(没有返回结果)我确信我的查询字符串中没有语法错误(额外的分号或缺少“)。
感谢您的宝贵时间!
【问题讨论】:
我强烈推荐使用 SQL 命令的 SQL 参数。它保留了文化的东西。 csharp-station.com/Tutorial/AdoDotNet/lesson06 【参考方案1】:您需要在参数值中传入%
,而不是在查询本身中。
SELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery
@userNameQuery
与 %my query%
类似。
【讨论】:
这行得通,谢谢好心的先生。我将在 6 分钟内标记为正确:D【参考方案2】:请尝试:
like '%' + @userNameQuery + '%'
【讨论】:
【参考方案3】:我建议像这样使用它:
-
将您的
query
写为SELECT userName from tblUserInformation WHERE
userName LIKE @userNameQuery
确保您绑定为参数@userNameQuery
的string
包含必要的%
,即将其声明为
var userName = @"%name%";
【讨论】:
以上是关于如何在 C# T-SQL 查询字符串中使用 % 修饰符?的主要内容,如果未能解决你的问题,请参考以下文章