2012-12-02 27 views
1

當我嘗試excecute此:插入Unicode字符串到DB使用LINQ

INSERT INTO [DB_NAME].[dbo].[Table] 
([Column]) 
VALUES('some_hebrew_characters') 

我在列只獲得問號。如果我將其更改爲N'some_hebrew_characters' - 那麼就可以。這是爲什麼發生?我怎樣才能把它翻譯成Linq?

如何使該表將默認的所有數據視爲Unicode?我的colum整理是Hebrew_CS_AI,服務器是SQL 2008 R2。

謝謝!

---編輯----

東西,我只注意到: 即使我運行此

SELECT 'some_hebrew_characters' 

即時得到的問號在我的結果網格

+0

什麼是你的列類型? Nvarchar或varchar? –

+0

這是Nvarchar(最大) – Shoham

回答

0

你沒忘記把你的列標記爲NVARCHAR呢?

+0

我的專欄是NVARCHAR(最大) – Shoham

0

可能這是您的編輯器的默認編碼不是unicode。

可以肯定的是,在SQL SERVER Management Studio中將查詢保存爲unicode文件並重新運行它。

我想如果你通過Linq得到結果就會有。

+0

我試過...保存爲unicode,同樣的問題... – Shoham

0

你需要用字母前綴的「」 N

在插入包含Unicode字符的值時,你需要這樣做:

insert into table_name(unicode_field) values (N'會意字') 

沒有N個前綴,他們會作爲ASCII字符傳遞。

此外,請確保您要插入的列支持unicode字符 - 即nchar,nvarchar,ntext。