网上查了下这个问题,据说是SQL语句里列的数目和后面的值的数目不一致导致的。
但是我检查了好几遍,sql语句没有写错。
并且用localhost的MySQL可以执行成功,但是用外网的MySQL就会出现这个错误。
而localhost和外网的数据库结构是相同的。
问下为什么会出现这个问题?
------Solutions------
贴SQL语句
另外 貌似你使用了count这个关键字?
------Solutions------
贴SQL语句出来,不然怎么帮你分析。
------Solutions------
//插入数据,新的Order
MySqlCommand command1 = new MySqlCommand("INSERT INTO orderinfo (CompanyName,DeliveryDate,Driver,Address,Suburb,Area,Postcode,Comment,Status,TotalQty,TotalPrice,OrderDate,CompleteDate) VALUES (?CompanyName,?DeliveryDate,?Driver,?Address,?Suburb,?Area,?Postcode,?Comment,?Status,?TotalQty,?TotalPrice,?OrderDate,?CompleteDate)", conn1);
command1.Parameters.Add("?CompanyName", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = comboBox3.Text.ToString();
command1.Parameters.Add("?DeliveryDate", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss");
command1.Parameters.Add("?Driver", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox5.Text;
command1.Parameters.Add("?Address", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox1.Text;
command1.Parameters.Add("?Suburb", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox7.Text;
command1.Parameters.Add("?Area", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = comboBox4.Text;
command1.Parameters.Add("?Postcode", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox6.Text;
command1.Parameters.Add("?Comment", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox2.Text;
command1.Parameters.Add("?Status", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = "New";
command1.Parameters.Add("?TotalQty", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox3.Text;
command1.Parameters.Add("?TotalPrice", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = textBox4.Text;
command1.Parameters.Add("?OrderDate", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = OrderDate;
command1.Parameters.Add("?CompleteDate", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = CompleteDate;
command1.ExecuteNonQuery();
sql语句在localhost上执行是没问题的,就是在网络上的mysql上有如题的错误。
另外我这个数据库有自增字段,会不会是这个原因?
------Solutions------
自增字段是OrderID,没有在上面的SQL语句中进行插入操作。
------Solutions------
肯定是数据库不一致吧。
你看看外网的数据库,OrderID是否是自增列。。。
仔细检查
------Solutions------
外网的数据库是localhost导入的,应该是一样的吧。
------Solutions------
Your PHP MySQL library version 5.0.51a differs from your MySQL server version 5.1.54. This may cause unpredictable behavior.
我在网络数据库看到了这个东西,是不是这个原因导致的?
------Solutions------
可能是自增段的问题
------Solutions------
command1.Parameters.Add("?DeliveryDate", MySql.Data.MySqlClient.MySqlDbType.VarChar)
这个字段确定是VARCHAR????
------Solutions------
但是在我localhost为什么没有任何问题?
我认为还是网络的mysql版本低的问题吧。
--转自