1、VS 2005
2、Gentle.Net
3、MySQL5免安装版(没有使用my.ini文件)

解决方案 »

  1.   

    编码问题,先执行mysql语句,如set names gb2312
      

  2.   

    是查出来的数据为乱码吗?如果是,那就将数据库里会出现中文的列都换成nvarchar类型,试下
      

  3.   

    没有真正用过mysql,但听说mysql的乱码问题很难搞
    执行set names gb2312后,已存在的数据库的编码不会变
    新建数据库才用新的编码
      

  4.   

    是很难,以前在JAVA中用还好,没有太大问题。但现在在C#中几天的还不成。
      

  5.   

    mysql里面一般有4个地方涉及汉字显示的编码问题;都需要进行设置;
    西文一般问题不大,均可正确显示;
      

  6.   

    哪四个地方?
    现在的问题是在Command Line Client下通过使用set names gbk就可以正常显示、修改中文信息了,但程序中就不行。
      

  7.   

    问题已经解决,头疼了几天...
    详细说明如下:误区:
    近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的。
       A、大家跟风都想使用utf8,但UTF8在处理中文时并非想像中的理想,Select/Update/Insert均出现乱码;
       B、gbk字符集远大于gb2312,是第二首选字符集,但在Server/Database设定为GBK字符集后,在程序中连接都不成功(not support),更不用说操作;最终解决方案:
    1、选用gb2312编码
    2、设置my.ini文件中的默认编码
       分别在[mysql]和[mysqld]配置段中增加或修改default_charater_set=gb2312
    3、创建数据库时编码选用gb2312
    4、创建表时编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)
    5、针对具体需要存放中文的字段设定编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)改进:
    如果确实需要存放gbk编码字符,请在连接成功后执行set names gbk其他还有补充的请及时回复,今天17:00结贴,会把大家的建议进行总结。
      

  8.   

    public partial class dtfsale : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.time.Text = DateTime.Now.ToString();
            this.topic.Text = Session["topic_id"].ToString();
            string topic_id = this.topic.Text.Trim();
             //建立数据库连接
            MySQLConnection DBConn;
            DBConn = new MySQLConnection(new MySQLConnectionString("localhost", "crm1", "root", "123", 3306).AsString);
            DBConn.Open();
            //防止出现中文显示问题
            MySQLCommand cmd = new MySQLCommand("set charset gb2312", DBConn);
            //或者是 MySQLCommand cmd=new MySQLCommand("set charset gbk",conn);也可以.我都试过.
            cmd.ExecuteNonQuery();
                  
            //执行查询命令    
            string query = "select * from customers_dtf1 where topic_id = topic_id";//这里是中文输入的文本
            MySQLCommand cmd2 = new MySQLCommand(query, DBConn);
                DBConn.Open();
                MySQLDataReader reader = cmd2.ExecuteReaderEx() ;//以下是如何将数据从数据库取出来,然后显示到想显示的地方            if (reader.HasRows)
                {
                    reader.Read();
                    this.name.Text = reader.GetString(1);               
                }
                else
                    this.name.Text = "失败";
       }
    }
    怎么我的还是不行