日期:2014-05-16  浏览次数:22276 次

C# 链接mySQl数据库 增加数据的问题。
C# code

            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

------解决方案--------------------
乱码的文字是什么?
------解决方案--------------------
Random r = new Random(i);
放到循环外面
乱码是不是怎么插入进去的,你好像是吧byte[] 存进去了,你的mysql支持宽字符了吗
------解决方案--------------------
show variables like 'char%'; 
应该是字符集的问题,估计是字符集不统一