网上关于解决mysql中文问题的文章很多。也确实能解决不少问题。我遇到的问题是:我已经解决好了数据库那边的中文,中文都可以插入数据库了。但是我在winform中,使用:
MySQLDataAdapter mda = new MySQLDataAdapter(sql, connection());
            DataSet ds = new DataSet();
            mda.Fill(ds);
这样的语句时,英文没有问题,可以查询成功,但是当我查询的结果是中文时,mda.Fill(ds)会这样的异常:
MySQLDriverCS Exception: MySQLDriverCS Error: wrong query.Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='请问大家这该怎么解决啊?感激不尽。我用的c# winform开发。

解决方案 »

  1.   

    字符集设置的问题,参考下贴中的方法。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    我看过那里了,没有解决.我这里报的异常,应该是数据库那边设置的gb2312和程序这边读取的字符集格式不一样。需要在程序这边设置,我就不知道怎么设置
    MySQLDataAdapter mda = new MySQLDataAdapter(sql, connection());
    中的sql是我的查询语句:select * from base where bookname="数学"
    网上查到的解决办法多是关于数据库那边中文的问题
      

  3.   

    我按照方法检查了,首先,我更改了my.ini 文件.default-character-set=gb2312。
    然后,我在程序中,添加上了 MySQLCommand comd = new MySQLCommand("set name gb2312", conn);就是set name "gb2312";
    但还是查询时,还是显示不了中文,显示结果时还是??,而我的程序中还是有同样的异常
      

  4.   

    中文问题好烦啊,数据库与中文问题,写网站时tomcat也会有中文问题
      

  5.   

    不好意思,我没有注意到这句话,我按照步骤,执行了那些命令,结果如下(我的表名叫user):mysql> show create table user;
    +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                                                                                                         |
    +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | user  | CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL,
      `pwd` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gb2312 |
    +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in setmysql> show full columns from user;
    +-------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    | Field | Type         | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
    +-------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    | id    | int(11)      | NULL              | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
    | name  | varchar(255) | gb2312_chinese_ci | NO   |     | NULL    |                | select,insert,update,references |         |
    | pwd   | varchar(255) | gb2312_chinese_ci | NO   |     | NULL    |                | select,insert,update,references |         |
    +-------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    3 rows in setmysql> show variables like 'char%';
    +--------------------------+---------------------------------------------------------+
    | Variable_name            | Value                                                   |
    +--------------------------+---------------------------------------------------------+
    | character_set_client     | utf8                                                    |
    | character_set_connection | utf8                                                    |
    | character_set_database   | gb2312                                                  |
    | character_set_filesystem | binary                                                  |
    | character_set_results    | utf8                                                    |
    | character_set_server     | gb2312                                                  |
    | character_set_system     | utf8                                                    |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
    +--------------------------+---------------------------------------------------------+
    8 rows in setmysql> 
      

  6.   

    没人帮忙了....
    我只有使用odbc来连接了。郁闷啊......
      

  7.   

    在MY.INI里,MYSQLD和CLIENT下都添加default-character-set=gb2312 ,然后重新启动服务。
      

  8.   

    除了楼上各位的修改以外,建议在.net的连接串里加上;charset=gbk
    然后再试试。