Andrew Alix
Попробуйте положить свою линию метода endedit, прежде чем делать обновление.
Если это не сработает, вы можете попробовать старый метод. Я никогда не видел, чтобы это провалилось. Я использую его после UpdateAll(Me.myDataSet), чтобы проверить, действительно ли он обновился.
Это лишнее, и должно быть ненужным, но это работает.
Просто измените имена наборов данных и адаптеров таблиц. Возможно, вы даже захотите попробовать их поймать
If yourDataSet.HasChanges then
'Don't forget the '()' since DataRow is an array
dim drModified() as DataRow = yourDataSet.Table.Select("", "", _
DatViewRowState.ModifiedCurrent)
If drModified.Count > 0 then
yourTableAdapter.Update(drModified) 'Not TableAdapterManager
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
'You can also combine the above into one line as below.
Dim drModified() As DataRow = yourDataSet.Table.Select("", "", _
DataViewRowState.ModifiedCurrent Or DataViewRowState.Added)
'I would keep the Deleted line separate so you can confirm all deletes and cancel if you want.