The RowState
property is used by ADO.NET to track
the changes that have been made to a DataRow
,
which allows changes made to the data while disconnected to be
updated back to the data source. The RowState
property indicates whether the row belongs to a table, and if it
does, whether it’s newly inserted, modified,
deleted, or unchanged since it was loaded.
The value of the RowState
property
can’t be set directly. ADO.NET sets the row state in
response to actions that affect the DataRow
. The
AcceptChanges( )
and RejectChanges( )
methods, whether explicitly or implicitly called, both reset the
RowState
value for the row to
Unchanged
. The following code illustrates this
idea:
// create a table with one column DataTable dt = new DataTable(); dt.Columns.Add("MyColumn", typeof(System.String)); // create a new row DataRow row = dt.NewRow(); // RowState = Detached // add the row to the table dt.Rows.Add(row); // RowState = Added dt.AcceptChanges(); // RowState = Unchanged // modify the row row["MyColumn"] = "MyFieldValue"; // RowState = Modified // reject the changes row.RejectChanges(); // RowState = Unchanged // delete the row row.Delete(); // RowState = Deleted row.AcceptChanges(); // row no longer exists