MySqlCommand Command = new MySqlCommand("insert into mytest (name) values(?p_name)", Connection);
        Command.CommandType = CommandType.StoredProcedure;
        MySqlParameter p_sno = new MySqlParameter("?p_name", MySqlDbType.VarChar,20);
        p_sno.Value = this.TextBox1.Text;
        Command.Parameters.Add(p_sno);
能够插入汉字,显示也正常,改成下面的存储过程汉字就变成了??
CREATE PROCEDURE proc_mytest(
    p_name VARCHAR(20))
BEGIN
    insert into mytest (name) values(p_name);
END$$

解决方案 »

  1.   

    你可以在 sqlclient 下 测试这个存储过程,如果出现乱码, 说明是这个存储过程(mysql)的问题如果正常, 则是 php 中的问题.
      

  2.   

    直接在mysql administrator这个管理工具下调用call proc_test('张三')仍是乱码,并且有一个错误提示:Data truncated for column 'p_name' at row 1
      

  3.   

    你执行命令 show variables like '%cha%';看有什么结果.