我有一个在dgv中编辑单元格的功能。这就是问题所在。我只能编辑一个单元格。
到目前为止,这是我的代码:
private void datagridview1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
Connection();
sqlconnection.Open();
this.datagridview1.Rows[e.RowIndex].Selected = true;
this.rowIndex1 = e.RowIndex;
this.datagridview1.CurrentCell = this.datagridview1.Rows[e.RowIndex].Cells[1]; //1 = only quantity can be edited, 0 = only item can be edited
sqlcmd = new SqlCommand("UPDATE inventory_table SET item = @item, quantity = @quantity WHERE id= " + this.datagridview1.Rows[this.rowIndex1].Cells["id"].Value, sqlconnection);
sqlcmd.Parameters.AddWithValue("@item", this.datagridview1.Rows[this.rowIndex1].Cells["item1"].Value);
sqlcmd.Parameters.AddWithValue("@quantity", this.datagridview1.Rows[this.rowIndex1].Cells["quantity1"].Value);
sqlcmd.ExecuteNonQuery();
sqlconnection.Close();
}
我错过了什么?我能做些什么才能编辑多个dgv单元并让它们在DB中更新?
答案 0 :(得分:0)
我认为问题是由于使用了错误的事件。您似乎想在用户完成编辑行时执行更新。
但是您的代码存在于任何单元格完成编辑后触发的事件中。我不能肯定你想要什么样的事件。这取决于您的规格。
但我敢打赌,RowValidated活动将满足您的需求。如果没有,请查看RowStateChanged事件。 (并尝试该事件的示例代码。它应该可以帮助您了解事件何时触发。)
答案 1 :(得分:0)