DatatableRowchanging Event和DataTableRowChanged Event的区别是什么?

本文关键字:Event 是什么 区别 DataTableRowChanged DatatableRowchanging | 更新日期: 2023-09-27 18:16:49

我试图理解RowChangingRowchanged事件之间的差异。我已经检查了MSDN博客,但没有发现任何实际差异。

这是我得到的:

  1. 都使用相同的Datarowchangeeventargs:所以他们有相同的事件数据集。即;e.Actione.row .

在观察窗口中,我检查了这些事件数据是否有任何变化,但它们是相似的。如果RowChanging中有Cancel,那么它就意味着验证。

总而言之,我很困惑为什么这两个事件意味着相同的。

请为我解惑。

这是我的差异,我发现基于我从答案得到的指针。

我向列中添加了几行,并调用了两个事件。我尝试在更改和更改事件上执行e.Row.RejectChanges()那时候我才意识到e.o row实际上是提议的row。所以Rejectchanges给了我错误"不能取消()在rowchanging事件"。但它允许在RowChanged Event中发生reject。于是发生了下面的事情:1.RowChangingEvente.Action=添加(当我添加多行到表)e.Row.RowState =分离。2. RowChanged事件e.Action =补充道e.Row。RowState=Added(用红色表示,因为它在这里被修改并添加到数据表中)

对于Exception:我收到"Cannot cAll CancelEdit() in row change event"

在rowChanged事件我得到"这一行已从表中删除,没有任何数据。BeginEdit()将允许在这一行创建新数据。"

请指导我将上述一行更改为Event Exception

DatatableRowchanging Event和DataTableRowChanged Event的区别是什么?

RowChanged Event发生在一个DataRow被成功修改后

RowChanging Event发生在DataRow的变化过程中。这将使您有机会在更改行本身之前执行代码。

根据MSDN:

DataTable.RowChangingDataRow发生变化时发生事件。

,

DataTable.RowChanged DataRow修改成功后发生的事件。

如果你在更改事件中抛出异常,你可以退出更改。改变了事件可以用于在其他表中进行更改,但不能(在简单的)辞职。

是的,如果True都包含相同的事件数据,即e.Actione.Row;但更重要的是你想在什么时间做什么操作。

表示OnChanging事件数据尚未验证。因此,如果您在此阶段更改任何代码,那么如果验证失败,数据可能不会持久。而在OnChanged事件中,您可以根据需要更改代码。

From MSDN:

RowChanging:当数据表中dataccolumn值或DataRow的RowState发生变化时发生。

RowChanged:发生在DataTable中某个dataccolumn的值或某个DataRow的RowState被成功修改后。在这个事件中,我们可以告诉应用程序下一步要做什么。

(例子)