asp.net 连 mysql utf-8完全OK的方法
0.下载Mysql 5.X for windows 进行安装
1.在asp.net中连接MySql、使用MySql.Data.DLL、完全ADO.NET访问模式、操作方便如同SQL Server
MySql.Data.dll下载地址:http://dev.mysql.com/downloads/
2.将MySql.Data.dll 从安装目录的比如(安装目录\MySQL\MySQL Connector Net 5.1.7\Binaries\.NET 2.0)下的MySql.Data.dll copy到你项目的bin目录下
3.web.config 加入(也可以项目引用,会自动生成这行)
<compilation debug="true">
<assemblies>
<add assembly="MySql.Data, Version=5.1.7.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
</assemblies>
</compilation>
链接字符串(注意这里写了字符集utf-8)介个就很重要啦:
<connectionStrings>
<add name="myql_connStr" connectionString="Server=localhost;Port=3307;Database=test;Uid=root;Pwd=rootroot;pooling=false;charset=utf8;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
4.把Mysql dbhelper 类准备好,就是ms sql的 sqlxxxx前面加 My就差不多
5.安装一个Mysql的可视管理工具,比如navicat.exe
6.关于中文乱码 1366 的事情,因为我做的多为网站,喜欢utf-8编码,以utf-8来说,把代码项目设成utf-8 (web.config)到mysql 的命令行界面 status ,查看编码状态,如下图:
全是utf-8就不需要怎样,如果不是,用命令行进行修改:
通过MySQL命令行修改:
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_server=utf8;
Query OK, 0 rows affected (0.01 sec)
再进行status,OK了吧,在管理工具处重启mysql服务
再打开navicat.exe 进行字段插入中文测试,不行?检查你的表相关字段的字符属性,如下图:
如果不是utf-8修改之,再插入中文,OK~~