隐藏

C#存储字符串(生僻字),SQL Server数据库变成了问号?

发布:2023/3/4 18:25:47作者:管理员 来源:本站 浏览次数:574


例子:程序中存储 李宛𥖄 ,数据库保存变成了 李宛?,𥖄直接变成了?号

原因:数据库存储类型错了

解决方法:

1、把类型改成 nvarchar

2、c#程序的数据模型中 在 Context.cs中找到相应的数据表,把相应字段的 .IsUnicode(false)删除


modelBuilder.Entity<User>(entity =>

           {

               entity.Property(e => e.Name)

                   .IsRequired()

                   .HasMaxLength(20)

                   //.IsUnicode(false)

                   .HasDefaultValueSql("((0))");

           });


关于数据库的存储类型可以参考以下文章:


SQL 中 char、nchar、varchar、nvarchar 的区别