ADO.NET manages rows in tables using row states and versions. A row state indicates the status of a row; row versions maintain the values stored in a row as it is modified, including current, original, and default values. For example, after you have made a modification to a column in a row, the row will have a row state of Modified, and two row versions: Current, which contains the current row values, and Original, which contains the row values before the column was modified.
When AcceptChanges is called on a DataSet, DataTable, or DataRow, all rows with a row state of Deleted are removed. The remaining rows are given a row state of Unchanged, and the values in the Original row version are overwritten with the Current row version values. When RejectChanges is called, all rows with a row state of Added are removed. The remaining rows are given a row state of Unchanged, and the values in the Current row version are overwritten with the Original row version values.