One key to successfully using disconnected data is minimizing the possibility for invalid information. If invalid values are entered in the DataSet, the error won't be caught until you commit changes to the data source. At this point, the problem can be much more difficult to track down and resolve.
In order to reduce the possibility of invalid data, you can use properties of the DataColumn object, as explained in Chapter 8. For example, if your DataSet is correctly configured with schema information, you'll receive an error if you try to insert a null value into a non-null column, use an invalid data type, or exceed the column length restrictions. Another way to prevent data errors is by using Constraint objects.
Constraint objects are required to enforce specialized rules that involve comparing column values in more than one row. ADO.NET currently provides two types of constraints:
The UniqueConstraint, which represents a rule forbidding duplicate values in a column (or across multiple columns)
The ForeignKeyConstraint, which represents a relationship that links a column (or set of columns) in one table to a column (or set of columns) in another table and defines the type of action to take for updates or deletions
In this chapter, you'll learn how to create these classes, enforce constraint checking, and enforce referential integrity in the DataSet.