ADO环境下,string query = "INSERT INTO 成绩表 VALUES (2,'lohha','jacky')";
同样的语句对英文表是没有问题的,但是中文表的话就不行了,但是这条语句在mysql命令行下是可以执行插入的,请教高人。

解决方案 »

  1.   

    检查你程序编码格式
    如.PHP中.加入
    header('Content-Type:text/html;charset=utf-8');UTF-8就是编码格式.另外文件也要存为相同格式.(记事本的话就是另存为.然后格式选UTF-8)
      

  2.   

    另外.传递给ADO的参数也需要编码..character_set_connection=
    character_set_results=
    查下手册吧
      

  3.   

    检查程序的编码格式吧
    此项要与mysql默认的编码格式一致。
    用记事本打开 另存为,选择编码格式。不过,这条sql语句最好写成:
    string query = "INSERT INTO `成绩表` VALUES (2,'lohha','jacky')"; 看好了,成绩表两面加的不是 单引号“'”, 而是 “`”
      

  4.   

    先谢过LS各位。
    我将Mysql的编码设置为utf-8: string connstr = "Data Source=test;User Id=root;Password=806591;charset=utf-8"
    插入中文表还是不行,英文表是可以的,mysql所有VARIABLES LIKE 'character_set_%'及VARIABLES LIKE 'collation_%'都设置成utf8,gbk2312也设置过了,都没有效果。
    如果按照LS将 成绩表 两端加``符号,错误为table test."一堆乱码显示" doesn't exist.
      

  5.   

    如果连接字符串里"charset=utf-8"或"charset=gb2312"或者根本不设置,出现的错误都一样,如下.
    MySQLDriverCS Exception: MySQLDriverCS Error: wrong query. You have an error in your SQL syntax; check the manul that corresponds to your MySQL server version for the right syntax to use near '哈喽 VALUES (10)' at line 1 INSERT INTO 哈喽 VALUES (10)";另外,MYSQL版本5.0字符串:string query = "INSERT INTO 哈喽 VALUES (10)";
    VS2005里执行代码,英文表都没有问题.期待解答。
      

  6.   

    1、确保程序编码是 utf8
    2、在执行sql语句前,先执行:set names 'utf8' 怎么执行,楼主会吧。
    string query = "set names 'utf8' "; 执行 query。
    3、query = "INSERT INTO `成绩表` VALUES (2,'lohha','jacky')"; 
    4、再执行 query 语句。这样试试看。
      

  7.   

    非常感谢LS的,已经用你的方法成功了,不过我是set names gb2312
      

  8.   

    hehe ,我只是举了一个例子,因为大众化是 utf8