2011-03-03 49 views
3

我一樣,在我的數據集查詢(數據庫位於.mdf文件):C#和SQL LIKE條件: '%' 可以作爲單字符通配符

SELECT * 
FROM TableName 
WHERE SomeField LIKE @Param 

TableName包含記錄ЗначениеSomeField字段中。

@ParamЗначени%它的作品完美,但是當@ParamЗначен%Значе%,它返回0行。 Значе%%%也有效。

爲什麼'%'作爲單字符通配符?

+2

表和數據庫的排序規則是什麼?在其他地方運行查詢時,你會得到相同的結果嗎? – BoltClock 2011-03-03 20:25:41

+1

請填寫'column'和'param'的數據類型。 – 2011-03-03 20:28:02

+0

西里爾一般,在數據集查看器和c#代碼我得到了相同的結果 – ohohoho 2011-03-03 20:29:22

回答

5

你的問題是,你應該使用NVARCHAR的@參數,而不是NCHAR

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

這真是

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

所以它不會匹配您的數據,這是

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

謝謝,現在是炒鍋。我將@param改爲NVARCHAR – ohohoho 2011-03-03 20:40:03