List<byte> list = new List<byte>();
            for (int i = 0; i < 5000; i++)
            {
                Random r = new Random(i);
                int dd = r.Next(0, 253);
                list.Add((byte)dd);
            }
            byte[] imageb = list.ToArray();
            MySqlConnection sqlcon = new MySqlConnection("server=192.168.0.2;database=test;port=3306;User Id=root;Connect Timeout=8;password=123456");
            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into N(");
            strSql.Append("imagexx)");
            strSql.Append(" values (");
            strSql.Append("@imagexx)");
            MySqlCommand sqlcom = new MySqlCommand(strSql.ToString(), sqlcon);
            sqlcom.Parameters.Add("@imagexx", MySqlDbType.Blob, imageb.Length).Value = imageb;
            sqlcon.Open();
            sqlcom.ExecuteNonQuery();
            sqlcom.Dispose();
            sqlcon.Close();
            sqlcon.Dispose();
    如果用Random r = new Random();生成的imageb里面全部都是同样的一个随机数(比如说里面存的是5000个1),这样可以成功插入到数据库,如果用Random r = new Random(i);生成的数据不同的话,插入到数据库会报异常You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??翴蚑豟鋕飗鷤 ????築芃裍躣鑟髗 ?????綟蔘誠\鄅靤鱺 ?????翵蜺' at line 1

解决方案 »

  1.   

    Random r = new Random(i);
    放到循环外面
    乱码是不是怎么插入进去的,你好像是吧byte[] 存进去了,你的mysql支持宽字符了吗
      

  2.   


    执行  sqlcom.ExecuteNonQuery();VS报的异常。。异常内容就是You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??翴蚑豟鋕飗鷤 ????築芃裍躣鑟髗 ?????綟蔘誠\鄅靤鱺 ?????翵蜺' at line 1
      

  3.   

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

  4.   


    insert 前面加了个 set names  'utf8'; 就解决了,但是我不知道为什么。。能简单帮我介绍。。
    http://blog.csdn.net/ACMAIN_CHM/article/details/4174186  这个我看的不是怎么明白。。
      

  5.   

    show variables like 'char%'; 
    应该是字符集的问题,估计是字符集不统一
      

  6.   


    非常难解释,除非有耐心写上几千个字。总体的原因就是 当你看到LONG这个的时候,如果不正确指定语言(中文/英文),你是无法正确解释LONG是什么意思的。同样, AA BA CA DB DA BE 这六个字节,代表什么? 要事先约定, GB2312 是两个字节代表一个汉字, UTF8是三个字节代表一个汉字, 但同样这也可以是一组数字。