- 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%';
应该是字符集的问题,估计是字符集不统一