2011-03-25 49 views
1

我有一个SQL Server 2005数据库,其中有一些表包含阿拉伯文本。这些字段的数据类型是NVARCHAR(n)。如何使阿拉伯语言的SQL Server 2005搜索?

表中的阿拉伯文本正常显示,使用select子句进行选择时,它们显示正确。 问题是用where子句搜索阿拉伯语文本会导致0行。

SELECT * FROM table_name的 其中名称= @名

这检索没有行,那里是这个值的名称。 当我们这样使用它:

SELECT * FROM table_name的 其中name = N'Arabic_Text”

然后,它的工作原理,但如何才能通过从前端搜索文本到后端。 你能指导我如何编写查询吗?

PS

在后面的代码我写道:

Dim UserName As String = "N'" & txtLogin.Text & "'" 
Dim _dtLogin As DataTable = oUser.UserLogin(UserName) 

即使该用户在数据库中存在返回0行。

回答

0

您需要连接您的查询,您需要使用N值前检查,因为Unicode值

+0

plz查看更新的问题 – 2011-03-25 12:01:10

0

考虑到这部分的:select * from table_name where [email protected]

如果这是一个存储过程,你需要将其修改为是这样的:

select * from table_name where [email protected] 

试试看,让我们知道它是否工作。

+0

雅我已经尝试过,但它给以下错误:无效的列名称'N @ UserName'。 – 2011-03-25 12:12:18

+0

我认为你犯了错误,如果你遵循我的建议,这个错误不会发生,你的错误是在=符号之前的部分,而不是在之后。 请再次检查一遍。 – 2011-03-25 12:31:06

+0

我认为声明输入参数为NVARCHAR应该返回正确的值。存储过程是否返回没有N(name = @ name)的值? – JoR 2011-03-25 12:41:19

相关问题