2010-10-12 78 views
1

DataTable類有RowChanging以及RowChanged事件,這很方便(對於我們這些愚蠢到首先使用DataTable類的人)。這些事件的事件處理程序採用DataRowChangeEventArgs類型的參數,其屬性包括DataRowAction(添加,更改,刪除等)和DataRow被更改或剛更改。是否有可能找出RowChanging事件中發生了什麼變化?

有沒有辦法真正知道正在被改變DataRow的字段(在RowChanging事件)或剛剛改變(在RowChanged事件)?如果沒有,是否有可能以其他方式獲取這些信息?

回答

4

如果您想知道哪些字段發生了變化,我認爲您最好使用ColumnChanged http://msdn.microsoft.com/en-us/library/system.data.datatable.columnchanged.aspx或ColumnChanging http://msdn.microsoft.com/en-us/library/system.data.datatable.columnchanging.aspx

在這兩種情況下都有一個例子來獲取舊值和新值。

+1

男人,那不是我以爲它是什麼。多麼令人誤解的名字(在我看來)!似乎它應該是'FieldChanged'或類似的東西。 – 2010-10-12 13:30:33

+0

@丹濤我覺得你好兄弟。如果情況完全相同,我跳過OnColumnChanged和OnColumnChanging,因爲我認爲它會觸發DataColumn對象的更改。但是,是的,這是確切的事件,以獲得OnRowChanging不提供的額外細節。 – 2016-05-31 13:55:48

1

RowChanging事件,如果動作是Change可以使用DataRow索引,是以DataRowVersion參數,以獲得舊的和新的價值。
類似的方法可以採取RowChanged事件。