用C#代码读取Mysql数据库,返回一个DataTable,它的表头中中文是乱码,但是表值里面的中文不是乱码。            DataSet ds = MySqlHelper.ExecuteDataset(connMysql, "select '序号' as `序号`,2 as `名称`");
            DataTable dt = ds.Tables[0];
            Console.WriteLine(dt.Columns[0].ColumnName);
            Console.WriteLine(dt.Columns[0].Caption);
            Console.WriteLine(dt.Rows[0][0].ToString());
            Console.WriteLine(dt.Rows[0][1].ToString());
 返回的是:
?o???
?o???
序号
2有什么办法让表头也不是乱码么?? 谢谢!

解决方案 »

  1.   

    你用的是.NET的MYsql驱动么。 你这个问题我也遇到过。 MySQLDriverCS  这个DLL是无法正常获取中文的。用这个把 http://download.csdn.net/detail/yes16ws/3314477
      

  2.   


    using MySql.Data.MySqlClient;引用这个命名空间
      

  3.   


    MySqlDataAdapter comment = new MySqlDataAdapter(sql, mysqlConnection);
                    ds = new DataSet();
                    comment.Fill(ds);
    ds.Tables[0];你封装的ExecuteDataset 方法晒出来看看
      

  4.   

    不是我封装的,是用的Mysql.Data.dll自带的。
      

  5.   

    解决了,在数据库的连接字符串里面设置字符集为utf8即可。。connectionString="server=10.11.11.11;user id=root; password=123456; database=test; pooling=false;charset=utf8"数据库是gbk的,服务器默认字符集也是gbk的,不知道什么原理。。