在使用SqlSugar做数据插入时发现插入emoji表情的字符串时会报错:提示插入字符串/F0/xxxxx什么的失败,类似:Incorrect string value: '\xF0\x9F...' for column 'name' at row 1。这样的错误。
!!!以下红色字体为重点,注意哦!!!
首先就是设置数据库为:utf8mb4,我这里是mysql的数据,其他数据库类似。
然后根据教程,在连接字符串上添加CharSet=utf8mb4:
可是改了上面之后发现还是提示这个字段插入时失败,和之前的错误提示一样。上图4.2的推荐写法要升级SqlSugar的版本,可是我有不想升级,怕升级了有其他问题,想找找其它方法(朋友最后还是的升级的)
查了好多资料试试了好多方法都不行,最后在SqlSugar官方论坛发现了以下信息:
正好说的就是我,然后我就只能升级并改成上图中的第二种写法:
需要5.0.3.8版本支持,那好,我就升级一下呗,升级步骤不多说,在VS开发工具中用NuGet 管理器直接升级就OK。
升级完成后,把我插入代码修改成如下图:
可是神奇的事情发生了,在生成项目的时候提示1000多个错误,都是提示SqlSuagr无法引用,可是我在VS里面双击定位到错误信息时,那个红色波浪线就消失了,错误提示也消失了,就这样我把1000多个提示点完,不过最后生成还是不行,来回折腾了好几个小时,以为是VS出问题了,各种重启重试也不行,反正就是生成报错,错误点进去红波浪线消失,错误消失。
就在我愁眉苦脸的时候,鼠标不知怎么的点到了这么一个界面上:
然后 发现了上图的红框里面的字,回首一个掏,打开自己的项目属性,NND,我的项目是.net Framework4.5的。果断把项目目标框架升到4.6:
如此便一切都好了。
也就是说SqlSugar要支持emoji表情的插入,版本要5.0.3.8以上(我直接升级到最新版本了),程序如果是.net Framework的需要Framework4.6以上。
最后,真是被这个VS该死的提示整惨了,必须分享出来。