また元の値に戻した場合RowStateが Modified になってしまいます。
一度編集したとはいえ、やはり全く同じ値ならばUpdateは走らせたくありませんよね!
その場合は、以下の関数をコピペして使ってみてください。
Public Sub RowStateSetUnChanged(ByVal dt As DataTable) If IsNothing(dt) Then Return End If For RowIdx As Integer = 0 To dt.Rows.Count - 1 Dim dr As DataRow = dt.Rows(RowIdx) If dr.RowState <> DataRowState.Modified Then Continue For End If Dim IsUnChanged As Boolean IsUnChanged = True For ColIdx As Integer = 0 To dt.Columns.Count - 1 If Not dr.Item(ColIdx, DataRowVersion.Current).Equals(dr.Item(ColIdx, DataRowVersion.Original)) Then IsUnChanged = False Exit For End If Next ColIdx ' 変更されていなかった場合、UnChangedに設定する If IsUnChanged Then dr.AcceptChanges() End If Next RowIdx End Sub
よろしくどうぞー。
0 件のコメント:
コメントを投稿