网上查了下这个问题,据说是SQL语句里列的数目和后面的值的数目不一致导致的。
但是我检查了好几遍,sql语句没有写错。并且用localhost的MySQL可以执行成功,但是用外网的MySQL就会出现这个错误。
而localhost和外网的数据库结构是相同的。问下为什么会出现这个问题?

解决方案 »

  1.   

    贴SQL语句
    另外 貌似你使用了count这个关键字?
      

  2.   

    贴SQL语句出来,不然怎么帮你分析。
      

  3.   


     //插入数据,新的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上有如题的错误。
    另外我这个数据库有自增字段,会不会是这个原因?
      

  4.   

    自增字段是OrderID,没有在上面的SQL语句中进行插入操作。
      

  5.   

    肯定是数据库不一致吧。
    你看看外网的数据库,OrderID是否是自增列
    仔细检查
      

  6.   

    外网的数据库是localhost导入的,应该是一样的吧。
      

  7.   

    Your PHP MySQL library version 5.0.51a differs from your MySQL server version 5.1.54. This may cause unpredictable behavior.
    我在网络数据库看到了这个东西,是不是这个原因导致的?
      

  8.   

     command1.Parameters.Add("?DeliveryDate", MySql.Data.MySqlClient.MySqlDbType.VarChar)
    这个字段确定是VARCHAR????
      

  9.   

    但是在我localhost为什么没有任何问题?
    我认为还是网络的mysql版本低的问题吧。