zoukankan      html  css  js  c++  java
  • 关于使用SqlSugar插入数据异常解决方案

     项目的解决方案中引用的有mysqlsugar的数据库操作库,在使用插入数据过程中一些特殊的生僻字或表情符号总会提示:

    Incorrect string value: 'xF0x9F...' for column 'name' at row 1

    这是由于UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。

    进而提示x十六进制的字符串信息。

    因为myselsugar ,也是对sqlsugar的进一步封装。所以将目光聚焦在sqlsugar上就可以了。

    sqlsugar给的解决方案是:

    在定义实体时将临时保存特殊字符的变量mapping(映射)sqlsugar中的[SqlSugar.SugarColumn(IsTranscoding =true)] //设置该自段转码 属性

    例:

     1 using System;
     2 using System.Linq;
     3 using SqlSugar;
     4 
     5 namespace ClearMonitor.Model.Entities
     6 {
     7     [SqlSugar.SugarTable("departmentintro")]
     8     public  class DepartmentintroData
     9     {
    10         public int DepartmentId { get; set; }
    11         public string DepartmentNo { get; set; }
    12         public string DepartmentName { get; set; }
    13         /// <summary>
    14         /// 部门简介
    15         /// </summary>
    16         [SqlSugar.SugarColumn(IsTranscoding =true)]
    17         public string DepartmentBlurb { get; set; }
    18 
    19     }
    20 }
    View Code
    最后是官方论坛的解决方案,也贴在下面了。MySql插入表情方案,感谢支持。如有问题请及时沟通联系。

     补充说明:实体特性API

    ColumnName  定义数据库表字段的真实名称,当一样的时候可以不定义该特性
    IsIgnore   不作数据库操作,true将不会进行查询、添加等操作
    IsPrimaryKey  标识是否为主键,更新的时候会根据主键值判段更新哪条,当InitKey为Attribute时一定要加该特性不然找不到主键
    IsIdentity  是否为自增长
    ColumnDescription  列描述
    Length  长度,生成表会用到
    IsNullable 是否可空,生成表会用到
    OldColumnName  修改列名,生成表会用到
    ColumnDataType  自定义生成的数据类型,生成表会用到
  • 相关阅读:
    [高精度模板][Pascal]整数加、减、乘、除、开方等
    [poj2528]求最后未完全被其它线段覆盖的线段个数
    [POJ3468]线段树模板
    火车进出栈问题(强化版)
    手把手教上Getchu.com
    集合删数
    [SBT模板题]HNOI2002 营业额统计
    离散化Pascal模板
    hdu 4507 吉哥系列故事——恨7不成妻
    组合数学总结
  • 原文地址:https://www.cnblogs.com/zhao-y/p/11880496.html
Copyright © 2011-2022 走看看