2013-04-26 30 views
2

我試圖挽救一些uincode字符通過LINQ流量代碼到SQL:使用LINQ保存Unicode字符到SQL

DataClasses1DataContext db = new DataClasses1DataContext(); 
Album a = new Album(); 
a.ID = "ALB00100"; 
a.ArtistID = "ART00007"; 
a.Title = "英語翻唱"; 
db.Albums.InsertOnSubmit(a); 
db.SubmitChanges(); 

但在SQL欄標題是「?????」 我使用此列的類型nvarchar(150)

+0

你的代碼是否運行?你遇到了什麼樣的問題?我會說nvarchar數據類型是你在SQL中需要的,在.NET中所有的字符串都是unicode的設計,然後可能取決於數據庫的排序規則 – 2013-04-26 07:33:31

+0

檢查用於數據庫的字符集。您可以通過執行以下查詢來完成此操作:'SELECT SERVERPROPERTY('Collat​​ion')'。如果它不是unicode,那可能就是你的問題。 – Carsten 2013-04-26 07:35:28

+0

@Aschratt排序是一個側面的問題在這裏...底層的列是'nvarchar',但*就是它* - 你不需要任何特殊的排序規則來存儲unicode – 2013-04-26 07:39:47

回答

1

更新您的.dbml文件,因爲它很可能最初是使用varchar而不是nvarchar生成的。

+0

或者你正在使用顯示器的列沒有使用可以顯示中文字符的字體。 – 2015-06-11 15:29:29