Probably your dataset has errors, try the following code (given from MSDN) to determine possible errors:
[VB.Net]
Private Sub CheckForErrors(myDataSet As DataSet)
' Invoke GetChanges on the DataSet to create a reduced set.
Dim xDataSet As DataSet = myDataSet.GetChanges()
' Check each table's HasErrors property.
Dim xTable As DataTable
For Each xTable In xDataSet.Tables
' If HasErrors is true, reconcile errors.
If xTable.HasErrors Then
' Insert code to reconcile errors.
End If
Next xTable
End Sub