Try putting your EndEdit line before you do the update.
If that doesn't work, you can try the old method. I've never seen this fail. I use it after the UpdateAll(Me.myDataSet) to check if it really updated.
It's extraneous, and should be unnecessary, but it works.
Just change the Dataset names and TableAdapter names. You might even want to put them in a Try Catch
If yourDataSet.HasChanges then
dim drModified() as DataRow = yourDataSet.Table.Select("", "", _
DatViewRowState.ModifiedCurrent)
If drModified.Count > 0 then
yourTableAdapter.Update(drModified)
End If
Dim drDeleted() As DataRow = yourDataSet.Table.Select("", "", _
DataViewRowState.Deleted)
If drDeleted.Count > 0 Then
Me.yourTableAdapter.Update(drDeleted)
End IF
Dim drAdded() As DataRow = yourDataSet.Table.Select("", "", _
DataViewRowState.Added)
If drAdded.Count > 0 Then
yourTableAdapter.Update(drAdded)
End If
End If
Dim drModified() As DataRow = yourDataSet.Table.Select("", "", _
DataViewRowState.ModifiedCurrent Or DataViewRowState.Added)