MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(adapter);
adapter.UpdateCommand = new MySqlCommand(strUpdateComand, conn);
adapter.Update(table);
UpdateCommand怎么写?
string strUpdateCommand = " update products_sort_orders_temp set sales_money_order=@sales_money_order,sales_amount_order=@sales_amount_order,uptime_order=@uptime_order where products_id=@products_id";
报错:MySql.Data.MySqlClient.MySqlException: Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException: Parameter '@sales_money_order' must be defined.
   在 MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlStream stream, String parmName)
   在 MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlStream stream)
   在 MySql.Data.MySqlClient.Statement.BindParameters()
   在 MySql.Data.MySqlClient.PreparableStatement.Execute()
   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   --- 内部异常堆栈跟踪的结尾 ---

解决方案 »

  1.   

    1,加入命名空间:
      using MySql.Data.MySqlClient;
    2,连接数据库并作UPDATE操作:
      string conString="server=127.0.0.1;database=mysql";
    //如果你的数据库连接有另外的账户和密码就加上user id=xxx;password=xxx
      MySqlConnection myConnection=new MySqlconnection(conString); 
      myConnection.Open(); 
      MySqlCommand cmd=myConnection.CreateCommand();
      MySqlParameter[] parameters={
           new MySqlparameter("@sales_money_order",MySqlDBType.Int),
                              "@sales_amount_order",MySqlDBType.Int},
                              "@uptime_order",MySqlDBType.Varchar,20),
                              "@products_id",MySqlDBType.Varchar,20)};
           parameters[0]=.Value="填入你想要的内容";
            parameters[1]=.Value="填入你想要的内容";
            parameters[2]=.Value="填入你想要的内容";
            parameters[3]=.Value="填入你想要的内容";  cmd.CommendText="update products_sort_orders_temp
       set sales_money_order=@sales_money_order, 
           sales_amount_order=@sales_amount_order,uptime_order=@uptime_order 
       where products_id=@products_id";
    3,检测是否修改成功:
       int i=cmd.ExecuteNonQuery();
       if(i>0)
        {"操作成功填入你想要的操作"
            //假如你在.NET上设计的windows Form设计那么可以用MessageBox.show("操作成功")
         }
       else{"操作不成功填入你的操作"}
    6,关闭数据连接:
    myConnection.Close();
      

  2.   

    MySqlCommandBuilder mycb = new MySqlCommandBuilder(sqlDaRegUser);
    sql.UpdateCommand = mycb.GetUpdateCommand();
    sql.UpdateCommand .Transaction = Tran;
    http://bugs.mysql.com/bug.php?id=53590
      

  3.   

    在关闭之前再加个:
    4,cmd.Parameters.Add(parameters);