Localdb将中文字符显示为问号

问题描述 投票:0回答:2

例如,我有一个包含以下内容的表:

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();
};

但是它在datagridview中显示???,如果在datagridview中更改了数据,???将再次出现:

enter image description here

c# localdb
2个回答
0
投票

1)检查数据库中的编码。如果在数据库属性Title = ???中,则在db中更改编码使用

ALTER DATABASE [YOURDATABASE] COLLATE SQL_Latin1_General_CP1_CS_AS

2)如果DB中显示正常的标题,则在使用Encoding.Convert将PrimaryCategory类转换为Unicode时,更改编码。


0
投票

使用以下sql更改排序规则:

© www.soinside.com 2019 - 2024. All rights reserved.