2014-01-09 16 views
1

我想配置我的DataAdapter UpdateCommand,但它不工作,我不知道为什么。如何创建MySql更新命令以使用DataGridView?

错误:命令执行过程中遇到致命错误

我使用,我改变了列的HeaderText一个DataGridView“dgMaterials”,我不知道有没有使用的列或的的HeaderText原始数据库字段名称在命令中。

下面是我所拥有的,我只使用字段名称在数据库中。

MySqlCommand command = new MySqlCommand("UPDATE tblmaterial SET number_material = @number_material, qtdp_material = @qtdp_material, name_material = @name_material, material_material = @material_material, measurep_material = @measurep_material, date_material = @date_material, status_material = @status_material, qtdu_material = @qtdu_material, measureu_material = @measureu_material, provider_material = @provider_material, price_material = @price_material WHERE id_material = @id_material", pblCnx); 
command.Parameters.Add(@"number_material", MySqlDbType.Int32, 1, "number_material"); 
command.Parameters.Add(@"qtdp_material", MySqlDbType.Int32, 3, "qtdp_material"); 
command.Parameters.Add(@"name_material", MySqlDbType.VarChar, 30, "name_material"); 
command.Parameters.Add(@"material_material", MySqlDbType.VarChar, 30, "material_material"); 
command.Parameters.Add(@"measurep_material", MySqlDbType.VarChar, 30, "measurep_material"); 
command.Parameters.Add(@"date_material", MySqlDbType.VarChar, 10, "date_material"); 
command.Parameters.Add(@"status_material", MySqlDbType.VarChar, 30, "status_material"); 
command.Parameters.Add(@"qtdu_material", MySqlDbType.Int32, 3, "qtdu_material"); 
command.Parameters.Add(@"provider_material", MySqlDbType.VarChar, 30, "provider_material"); 
command.Parameters.Add(@"price_material", MySqlDbType.Double, 6, "price_material"); 
MySqlParameter parameter = command.Parameters.Add(@"id_material", MySqlDbType.Int32, 4, "id_material"); 
parameter.SourceVersion = DataRowVersion.Original; 
da.UpdateCommand = command; 
dgMaterials.EndEdit(); 
da.Update(ds, "tblmaterial"); 

请帮帮我!

回答

1

添加此事件的DataGridView “CellEndEdit”

,并采取这样的想法

private void dtg_contatos_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
     { 
      string query; 
      string name; 
      string cod; 

      for (int i = 0; i < dtg_contatos.ColumnCount; i++) 
      { 
       if (i == 0) 
       { 
        cod = dtg_contatos[i, e.RowIndex].Value.ToString(); 
       } 
       if (i == 1) 
       { 
        name = dtg_contatos[i, e.RowIndex].Value.ToString(); 
       } 
      } 
      query = "update table set name = '" + name + "' where cod = '" + cod + "';"; 
     }