2011-03-25 50 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

相關問題