【问题标题】:How would i notify user of unsaved changes in DataGridView DataTable when closing?关闭时如何通知用户 DataGridView DataTable 中未保存的更改?
【发布时间】:2018-09-07 08:15:13
【问题描述】:

我有一个显示来自 SQL 数据库的表的 datagridview。我可以编辑这个表。然后我有一个按钮来保存这些更改,并在 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");
        }

【问题讨论】:

  • 如果您使用System.Data.DataTable,请注意此类提供允许您跟踪更改的事件(ColumnChanged、RowChanged、RowDeleted 等...)。

标签: c# datagridview


【解决方案1】:

你有很多选择来解决这个问题。例如,在我看来,我会将 DataGridView 设为只读,并制作一个按钮进行编辑。当用户单击此按钮时,它会打开新表单,用户可以在那里进行编辑。然后,如果此表单中发生了某些事情,它将被保存(如果更改有效)。我就是这样做的。

或者您可以设置为每次用户关闭表单时保存更改。您每次都必须计算用户的错误行为... :)

【讨论】:

    【解决方案2】:

    订阅 DataGridView 的 CellValueChanged 事件,并设置一个布尔标志,表示网格已更改,然后在离开应用程序时进行检查。

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 2011-12-09
      • 2011-07-22
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 2023-03-11
      • 2022-01-06
      相关资源
      最近更新 更多