在UserDeletingRow上的dataTable中将行标记为已删除

时间:2010-04-27 08:11:22

标签: c# winforms datagridview dataset bindingsource

我有一个通过BindingSourceControl绑定到winforms dataGridView的数据表。我希望能够从dataGridView处理UserDeletingRow事件,并将dataTable中的行标记为已删除。然后我需要能够从数据表中检索标记为已删除的行,以便在单击“保存”按钮时可以从数据库中删除它们。请不要在每次触发UserDeletingRow时都不想从数据库中删除,只在我的数据集中将该行标记为已删除。

任何人都可以指出如何做到这一点吗?

2 个答案:

答案 0 :(得分:2)

我发现这样做的最好方法是在编辑开始之前确保在dataTable / dataset上调用AcceptChanges() - 当数据绑定到网格时,我在表单加载时执行了此操作。现在,当用户通过网格删除记录然后点击“保存”时,我能够通过行的rowState过滤dataTable中的行以获取已删除的行。请注意,每次用户删除行时,dataTable的rows集合上的Count属性都会减1,但该行仍在dataTable中,只是标记为要删除。

答案 1 :(得分:1)

捕获集合中的“待删除”rowId(s)然后创建一些方法并传递集合以处理记录的删除