2013-04-26 69 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