When the merge is complete, if there are any constraints on the dataset that cannot be enabled, a Constraint Exception is thrown.
Information about the changes in a dataset is maintained in two ways: by flagging rows that indicate that they have changed (Row State), and by keeping multiple copies of a record (Data Row Version).
By using this information, processes can determine what has changed in the dataset and can send appropriate updates to the data source.
(A concurrency violation occurs when another user modifies a record in the data source after the dataset has been filled.)To make changes to an existing data row, add or update data in the individual columns.
If the dataset contains constraints (such as foreign keys or non-nullable constraints), it's possible that the record can temporarily be in an error state as you update it.
Or you might have application-specific validation checks that can raise custom errors during any stage of an update event.
For more information, see Validate data in datasets.
If you aren't using data-bound controls, then you have to manually call the Update method of the same Table Adapter (or data adapter) that you used to populate the dataset.
However, you can also use different adapters, for example, to move data from one data source to another or to update multiple data sources.
Additionally, extra columns in the source dataset are added to the target dataset.
Merging datasets is useful when you have a local dataset and you get a second dataset from another application.
It's also useful when you get a second dataset from a component such as an XML web service, or when you need to integrate data from multiple datasets.