我从包含可编辑列的SQL Server数据库加载了datagridview。我想检查用户是否更改了datagridview中的数据,之后我可以将数据保存回数据库,如果用户没有更改任何内容,则无法将数据保存到数据库中。数据库。我不想更新原始记录上的数据,在datagridview中更改之后,它应该将数据插回数据库。像主模板和用户模板之类的东西。
答案 0 :(得分:1)
DataGridViewCell不跟踪更改。如果您只需知道一个单元格的Value已更改,请使用CellValueChanged事件并在那里执行您的操作。如果您需要知道哪些单元格已被修改,那么您可以枚举它们并执行必要的操作,请尝试以下操作:
HashSet<DataGridViewCell> changedCells = new HashSet<DataGridViewCell>();
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = sender as DataGridView;
if (!changedCells.Contains(dgv[e.ColumnIndex, e.RowIndex]))
{
changedCells.Add(dgv[e.ColumnIndex, e.RowIndex]);
}
}
不要忘记挂钩DataGridView的CellValueChanged事件。如果需要更改单元格列表,请执行以下操作:
foreach (DataGridViewCell cell in changedCells)
{
// Your work here
}
这仅适用于UI级别。如果您的数据也被代码更改,您将需要不同的方法。
See here for complete reference
请参阅[Nikola Markovinović][2]
答案
答案 1 :(得分:0)
我认为你可以使用asp.net网格的OnRowUpdating="GridViewUpdateEventHandler"
。