我在VS2010,C#ASP.NET Web应用程序中使用SQL Server 2008作为我的数据库引擎。我的项目是波斯语(波斯语)所以我使用nvarchar
和ntext
作为我的数据类型。
我使用以下查询从我的数据库中查找行但没有返回任何内容,而我有一行指定了关键字。当然我的关键字是波斯语(unicode)。
这里出了什么问题?是因为使用波斯语吗?如何在包含unicode字符的nvarchar
和ntext
列中进行搜索?
myCommand = new SqlCommand("select * from tblArticle where name LIKE '%" + txtSearch.Text + "%'", SQLConnection);
答案 0 :(得分:13)
您应该使用N'
前缀来表示您正在搜索Unicode字符串:
SELECT * FROM dbo.tblArticle WHERE name LIKE N'%......%'
否则,您将搜索字符串转换回非Unicode,然后搜索....
答案 1 :(得分:3)
您必须使用COLLATE Latin1_General_BIN2
才能获得结果。埃塞俄比亚为阿姆哈拉语工作。
Select * From YourTableName where ColNameYouSearch LIKE N'%YourSerchCriteria%' COLLATE Latin1_General_BIN2"
答案 2 :(得分:0)
我不熟悉C#
ASP.NET
,但使用nvarchar
或ntext
不应对查询类型产生任何影响。我在徘徊你只是将你的查询命令分配给一个变量而不是执行它。
你应该做myCommand.execute()
吗?