また元の値に戻した場合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 件のコメント:
コメントを投稿