C#和SQL LIKE条件:'%'用作单字符通配符

时间:2011-03-03 20:24:21

标签: c# sql sql-server wildcard sql-like

我在我的DataSet中有这样的查询(数据库位于.mdf文件中):

SELECT *
FROM TableName
WHERE SomeField LIKE @Param

TableNameЗначение字段中包含记录 SomeField

@Param Значени% 时,它可以正常运行,但当@Param Значен% Значе% ,它会返回0行。 Значе%%% 也有效。

为什么'%'作为单字符通配符工作?

1 个答案:

答案 0 :(得分:5)

你的问题是你应该使用NVARCHAR的@param,而不是NCHAR

declare @Param nchar(255)
set @Param = N'Значе%'

这真的是

N'Значе%             ...' (many more spaces)

因此它与您的数据不匹配,即

N'Значение             ...' (padded with spaces)