C# Entity Framework操作MySQL数据库乱码问题

小柊 发表于 2016年08月08日 16时49分39秒

废话少说一句话系列:

根据项目类型打开对应的config文件(app.config或web.config),找到连接字符串,加入“Character Set=utf8;”(不含引号)即可。

 

上一篇我们解决了Visual Studio 实体数据模型向导在选择完数据库连接后点击下一步就闪退问题,正式开始了EF框架操作MySQL的旅程。但好景不长,没过几天那个开发Java的学长就跟我反应数据库里有一堆全是问号的记录,看这写入时间,应该是我干的。

 

当时我就有点懵,因为以前用Entity Framework + Microsoft SQL Server从来就没出现过这样的问题。

 

拿着这个问题去网上搜了一下,发现还是挺普遍的,说是Visual Studio 实体数据模型向导在向app.config文件(Web项目则是Web.config文件)里写入连接字符串的时候没有指定字符集,只要手动开发config文件,找到连接字符串,然后在其中加上:

Character Set=utf8;

即可。

 

比如之前连接字符串是这样的:

metadata=res://*/TestDB.csdl|res://*/TestDB.ssdl|res://*/TestDB.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;user id=root;password=password;database=databasename"

只要改成:

metadata=res://*/TestDB.csdl|res://*/TestDB.ssdl|res://*/TestDB.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;user id=root;password=password;Character Set=utf8;database=databasename"

就可以了。

 

改好之后再次尝试将数据写入MySQL数据库:

 

一切正常。

 

 

小柊

2016年8月8日 16:47:55

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注