关于使用SqlSugar插入数据异常解决方案

摘要:
该项目的解决方案引用了mysqlsugar数据库操作库。在插入数据的过程中,一些特殊的晦涩字符或表情符号会一直提示:然后提示x十六进制字符串信息。定义实体时,将临时保存映射SqlSugar(一个具有特殊字符的变量)中的[SqlSugar.SugarColumn(IsTranscoding=true)]//例子:

 项目的解决方案中引用的有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)] //设置该自段转码 属性

例:

关于使用SqlSugar插入数据异常解决方案第1张关于使用SqlSugar插入数据异常解决方案第2张
 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 自定义生成的数据类型,生成表会用到

免责声明:文章转载自《关于使用SqlSugar插入数据异常解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇airtest中断言存在assert_exists、断言包含assert_equal和判断是否存在exists的使用时序数据库InfluxDB使用详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle 迁移到clickhouse 45亿条数据

原文链接:http://www.520mwx.com/view/90469 45亿数据迁移记录 背景 数据库数据量日益增加,逐渐开始显得很是臃肿,日常查询统计的时候,仅仅是count(1) 查询下总数,耗费的时间也在500s左右,而且之前的orcle数据库,前期建立的时候,也未考虑太多,未进行索引,分表,等优化。后面鉴于种种考虑,以及后期的规划,准备...

ORACLE 锁机制

Refer to:http://blog.csdn.net/tianlesoftware/article/details/4696896 万能解决之道,就是从系统级kill掉lock的process  在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事...

nextcloud nginx搭建完后(初始化数据库后)登录不了

nextcloud搭建完初始化数据库(mysql8.0)后,输入用户名、密码后登录不了、登录没反应(还是跳转当前登录页面)呈现如下: 原因是web、php nginx 和  ../php/session/ 不是同一个用户 这里的../php/session是php在你当前系统安装的位置,很多博客、论坛也说明了问题,但是给的session的位置不一定对,如下...

Spring配置-数据库连接池proxool[转]

 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。   数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据...

plsql导出导入 表结构、表数据、存储过程等

导出:首先点击   TOOLS,选择  EXPORT TABLES  选中你需要导出的表,   勾选  “Create tables” 是因为在导入的数据库中没有此表 如果勾选"Drop tables" 而没有勾选 “Create tables” ,而数据库中没有此表,会报表和视图不存在 Output file 为导出的路径   如果你想导的表  数据记录...

mysql 权限控制笔记

MySQL存取控制包含2个阶段: 阶段1:服务器检查是否允许你连接。 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你对表有SELECT权限或对数据库有DROP权限。 参考 : 5.8. MySQL用户账户管理1.权限查看 mysql>sh...