This example code explains maybe :=)
Dim _DT As DataTable = Nothing
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_DT = New DataTable
_DT.BeginLoadData()
For i As Integer = 0 To 5
Dim _Col As DataColumn = New DataColumn("", System.Type.GetType("System.String"))
_DT.Columns.Add(_Col)
_Col.Dispose()
_Col = Nothing
Next
For i As Integer = 0 To 5
Dim _Row As DataRow = _DT.NewRow
_Row.Item(0) = String.Format("Test {0}", i.ToString)
_DT.Rows.Add(_Row)
Next
_DT.EndLoadData()
_DT.AcceptChanges()
Me.BindingSource1.DataSource = _DT
Me.DataGridView1.DataSource = Me.BindingSource1
End Sub
Private Sub BindingSource1_CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BindingSource1.CurrentItemChanged
Dim tmpTable As DataTable = _DT.GetChanges(System.Data.DataRowState.Modified)
Me.DataGridView2.DataSource = tmpTable
End Sub
MSDN says....
When you call AcceptChanges on the DataSet, any DataRow objects still in edit-mode end their edits successfully. The RowState property of each DataRow also changes; Added and Modified rows become Unchanged, and Deleted rows are removed.