I have a problem with the Merge method and it only happens in a very specific set of steps. Here are the steps to cause the problem:
1. Create two C1DataSet(s), call them dsA and dsB that are identical
2. Add several rows to dsA.Tables("tblA")
3. Call dsB.StorageDataset.Tables("tblA").Merge(dsA.StorageDataset.Tables("tblA"), False)
4. Execute dsA.AcceptChanges()
4. Now delete one of the rows you added in step #2 above.
5. Call dsB.StorageDataset.Tables("tblA").Merge(dsA.StorageDataset.Tables("tblA"), False)
At this point you can look at the rows, and RowState(s) of the rows returned by dsA.StorageDataset.Tables("tblA").GetChanges. Everything looks fine.
When you call dsB.Update no inserts, deletes, or updates are sent to the SQL Server. If I re-create dsA it the new rows will not have made it to the table.
I sure hope there is a work-around for this issue. It is a show stopper for our project.