7

我在 VS2010、C# ASP.NET Web 应用程序中使用 SQL Server 2008 作为我的数据库引擎。我的项目是波斯语(波斯语),所以我使用nvarcharntext作为我的数据类型。

我使用以下查询从我的数据库中查找行,但没有返回任何内容,而我有一行包含指定的关键字。当然,我的关键字是波斯语(unicode)。

这里出了什么问题?是因为使用波斯语吗?如何在包含 Unicode 字符的列中nvarchar进行搜索?ntext

myCommand = new SqlCommand("select * from tblArticle where name LIKE '%" + txtSearch.Text + "%'", SQLConnection);
4

3 回答 3

19

您应该使用N'前缀来指示您正在搜索 Unicode 字符串:

SELECT * FROM dbo.tblArticle WHERE name LIKE N'%......%'

否则,您将搜索字符串转换回非 Unicode,然后搜索....

于 2012-06-29T09:54:33.667 回答
3

您必须使用COLLATE Latin1_General_BIN2才能获得结果。为埃塞俄比亚人的阿姆哈拉语工作。

Select * From YourTableName where ColNameYouSearch LIKE N'%YourSerchCriteria%' COLLATE Latin1_General_BIN2"
于 2017-08-22T06:10:01.627 回答
0

我不熟悉C# ASP.NET,但使用nvarcharorntext不应该对查询类型产生任何影响。我在徘徊你只是将你的查询命令分配给一个变量而不是执行它..你应该做类似的事情myCommand.execute()吗?

于 2012-06-29T08:36:01.587 回答