我有一个WPF + WCF应用程序,现在已经运行了2年,但现在他们有一个需求:他们想要在数据库中输入一些数据,这些数据不在欧洲字母表中(例如西里尔字母)。 / p>
问题是数据库作为整理设置为Latin1_General_CI_AS_WS,当我在其中存储数据(例如вмешательство)并检索它们时,我得到了一些“??????”相反(当进入SQL Server Management工作室时)。
应用程序的其余部分已经知道使用其他类型的字母表(不是为了阅读方向,而是我的直接问题)。
那么如何在现有数据库中将排序规则设置为unicode? SQL Server管理工作室中的归类字段为灰色。
我正在使用EntityFramework进行与数据库的所有通信,我也得到了那些“????”如果我检索任何字段。
答案 0 :(得分:13)
您的问题不是整理,而是数据类型。
如评论中所述,您使用的是varchar(x)
和text
。这些类型不存储unicode数据。您需要使用nvarchar(x)
和ntext
代替。 (如果您使用的是SQL 2005或更高版本,则应使用nvarchar(MAX)
代替ntext
)