2012-09-16 57 views
0

我試圖從波斯語插入到我的數據庫(SQL Server 2008)從C#代碼。 問題是,當你插入sql服務器,你只是簡單地使用utf-8的N'چプラファン'。但是如何在LINQ中做到這一點? (我不想使用存儲過程)。 Thorks什麼是C#和LINQ中波斯語中N'something的等價物?

+0

這是一個關於翻譯或字符編碼的問題嗎? –

+0

爲什麼你不想使用存儲過程? – Oded

+0

它是utf-16,* not * utf-8,SQL Server 2008不支持utf-8。 – RBarryYoung

回答

2

只需使用字符串"چیزی"並確保您的.cs文件也是UTF-8

將此用作參數化查詢中的參數或您正在使用的任何ORM中的參數。數據訪問層將負責編碼。

+0

我很確定VS將源代碼文件保存爲utf-16,這應該足夠了。 – RBarryYoung

+0

@RBarryYoung - 你可能是對的。這種或那種方式,它是一種Unicode編碼。 – Oded

+0

其實我的問題是,當即時消息插入「چیزی」到我的表中時,除了最後一個字母插入阿拉伯語像這樣「چیزي」,一切都可以。我使用實體框架。 – Ashkan

0
  • LINQ到EF或LINQ到SQL將生成/使用N '' 自動到處:

    EXEC sp_executesql的N'update [DBO] [用戶] 集[名稱] = @ 0 其中(([Id] = 1)和([Name] = 2)) ',N'@ 0 nvarchar(max),@ 1 int,@ 2 nvarchar(max)',@ 0 = N'User名字1',@ 1 = 1,@ 2 = N'Vahid'

  • 那些N'ي'(阿拉伯語)或N'ì'(波斯語)都是有效的UTF-8字符。所以你需要自己(在插入數據之前)在它們之間進行轉換,它不是EF或SQL Server的職責。 (波斯語) Some examples

相關問題