Localdb отображать китайские символы в виде знака вопроса - PullRequest
0 голосов
/ 23 декабря 2019

Например, у меня есть таблица со следующим:

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

Ответы [ 2 ]

0 голосов
/ 24 декабря 2019

Использование следующего 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;

enter image description here

Но почему Visual Studio не использует раскрывающийся список выбора для этого v

0 голосов
/ 23 декабря 2019

1) Проверьте вашу кодировку в БД. Если в БД свойство Title = ???, то измените кодировку в db, используя

ALTER DATABASE [YOURDATABASE] COLLATE SQL_Latin1_General_CP1_CS_AS

2), если в БД отображается нормальный заголовок, то измените кодировку, когда вы получаете класс PrimaryCategory на Unicode, используя Encoding.Convert

...