The RowState is a very useful property of a DataRow, it
gives the current state of the row. The state of the row is affected based on
the operations performed on the row, like Add, Modify Delete. The RowState of a row can take one of the
following values.
- Detached
- Added
- Unchanged
- Modified
- Deleted
Let us add a new
row to a DataTable, and perform various operations on the row to observer the
change in the RowState of the row.
// Fill the DataTable with your own logic
// Here we will fill the table by calling the Domain class.
clsEmployee objEmp = new
clsEmployee();
DataTable dtEmployee = objEmp.GetEmployeeList();
DataRow drEmp;
DataRow drEmp;
//
// Add a new Row and perform data changes
drEmp =
dtEmployee.NewRow(); // RowState -
Detached
dtEmployee.Rows.Add(drEmp); // RowState
- Added
drEmp["ID"] = 3134; //
RowState - Added
drEmp.Delete(); //
RowState - Detached
//
drEmp =
dtEmployee.NewRow(); // RowState - Detached
dtEmployee.Rows.Add(drEmp); // RowState
- Added
dtEmployee.AcceptChanges(); // RowState
- Unchanged
drEmp["ID"] = 3134; //
RowState - Modified
drEmp.Delete(); //
RowState – Deleted
Notice that in the first block, the RowState is not
changed, this is because we did not call the DataTable’s AcceptChanges() method,
thought we performed an edit operation in the row, the RowState still remained Added.
The DataTable’s AcceptChanges()
method commits the changes to the DataTable. In the 2nd code block,
we called the DataTable’s AcceptChanges() method after adding the row to the
table, hence the RowState gets changed after performing a Modify/Delete
operation.
The DataTable’s AcceptChanges() method commits the
changed done to the DataRow and the DataTable’s RejectChanges() method rolls
back the changes done to the DataRow. To know more about these methods refer
the posts
.
Related Posts
Get Deleted rows in a DataTable / DataGridView in C# Windows Forms
.
Related Posts
Get Deleted rows in a DataTable / DataGridView in C# Windows Forms
No comments:
Post a Comment