C# Localdb将中文字符显示为问号
例如,我有一个包含以下内容的表:C# Localdb将中文字符显示为问号,c#,localdb,C#,Localdb,例如,我有一个包含以下内容的表: CREATE TABLE [dbo].[PrimaryCategory] ( [Id] INT IDENTITY(1, 1) NOT NULL, [Title] NVARCHAR(250) NOT NULL, PRIMARY KEY CLUSTERED ([Id] ASC) ); 我在表中插入了一些数据 using (var ctx = new DatabaseEntities()) { List<Primary
CREATE TABLE [dbo].[PrimaryCategory]
(
[Id] INT IDENTITY(1, 1) NOT NULL,
[Title] NVARCHAR(250) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
我在表中插入了一些数据
using (var ctx = new DatabaseEntities())
{
List<PrimaryCategory> categories = new List<PrimaryCategory>()
{
new PrimaryCategory() { Title = "政策理论" },
new PrimaryCategory() { Title = "佛学讲记" },
new PrimaryCategory() { Title = "佛学禅定" },
new PrimaryCategory() { Title = "佛教心理学" },
new PrimaryCategory() { Title = "人物介绍" },
new PrimaryCategory() { Title = "幽默格言" },
new PrimaryCategory() { Title = "文学" },
new PrimaryCategory() { Title = "动态报道" },
new PrimaryCategory() { Title = "介绍佛陀" },
new PrimaryCategory() { Title = "介绍佛教" },
new PrimaryCategory() { Title = "佛教故事" },
new PrimaryCategory() { Title = "生活的教育" },
new PrimaryCategory() { Title = "海内外佛教" }
};
ctx.PrimaryCategory.AddRange(categories);
ctx.SaveChanges();
};
使用(var ctx=new DatabaseEntities())
{
列表类别=新列表()
{
新建PrimaryCategory(){Title=”政策理论" },
新建PrimaryCategory(){Title=”佛学讲记" },
新建PrimaryCategory(){Title=”佛学禅定" },
新建PrimaryCategory(){Title=”佛教心理学" },
新建PrimaryCategory(){Title=”人物介绍" },
新建PrimaryCategory(){Title=”幽默格言" },
新建PrimaryCategory(){Title=”文学" },
新建PrimaryCategory(){Title=”动态报道" },
新建PrimaryCategory(){Title=”介绍佛陀" },
新建PrimaryCategory(){Title=”介绍佛教" },
新建PrimaryCategory(){Title=”佛教故事" },
新建PrimaryCategory(){Title=”生活的教育" },
新建PrimaryCategory(){Title=”海内外佛教" }
};
ctx.PrimaryCategory.AddRange(类别);
ctx.SaveChanges();
};
但是它在datagridview中显示?
,如果您在datagridview中更改数据,则?
将再次:
1)检查您在DB中的编码。如果在DB属性Title=???中,则在DB use中更改编码
ALTER DATABASE [YOURDATABASE] COLLATE SQL_Latin1_General_CP1_CS_AS
2) 如果在DB中显示正常标题,则在使用编码将PrimaryCategory类转换为Unicode时,更改编码。使用以下sql转换以更改排序:
alter database "C:\Users\Administrator\Source\Repos\PutixinEditor\PutixinEditor\Database.mdf" set single_user with rollback immediate ;
go
alter database "C:\Users\Administrator\Source\Repos\PutixinEditor\PutixinEditor\Database.mdf" collate Chinese_PRC_CI_AS ;
go
alter database "C:\Users\Administrator\Source\Repos\PutixinEditor\PutixinEditor\Database.mdf" set multi_user;
但是为什么Visual Studio不为arvhice提供选择下拉列表?数据库使用什么字符编码?@Enigmativity:SQL Server对任何
NVARCHAR
数据类型列使用UCS-2(大致相当于UTF-16-通常每个字符2个字节)@Enigmativity LocalDB的实例排序规则设置为SQL\u Latin1\u General\u CP1\u CI\u AS,无法更改。通常支持数据库级、列级和表达式级排序规则。@Tangmank-显示如何查询数据库的PrimaryCategoryForm
的代码在哪里?@Enigmativity我正在使用datasource拖放默认情况下,校对为SQL\u Latin1\u General\u CP1\u CI\u AS
。请尝试校对中文、简体、拼音或简体笔划或顺序。如果这没有帮助,请在保存到数据库之前尝试编码为unicode