我有一个datagridview,它显示SQL数据库中的表。我可以编辑此表。然后,我有一个按钮来保存此更改,并在SQL Server数据库中更新此表。
我将如何检测对表的更改,并在用户关闭表单或转到另一个表时通知用户他没有保存更改? 通知窗口中未保存更改的代码如下:
if (MessageBox.Show("Do you want to save your changes!", "Save changes", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
scb = new SqlCommandBuilder(sda);
DataTable dt;
sda.Update(dt);
MessageBox.Show("Changes saved");
}
答案 0 :(得分:0)
您有很多方法可以解决这个问题。例如,我认为我将DataGridView设为ReadOnly,然后将一个按钮进行编辑。当用户单击此按钮时,它将打开新表单,用户可以在此进行编辑。然后,如果以这种形式发生了某些事情,它将被保存(如果更改有效)。这就是我的方法。
或者也许您可以设置每次用户关闭表单时保存所做的更改。您必须每次都以错误的用户行为来计数...:)
答案 1 :(得分:0)
订阅DataGridView的CellValueChanged
事件,并设置一个布尔值标志,表示网格已更改,然后在离开应用程序时进行检查。