Tuesday, June 19, 2012

DataRow RowState

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
Now let us see with an example, on how the rowstate property gets altered based on the operations performed on a DataRow.

 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;
//
// 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

Search Flipkart Products:
Flipkart.com

No comments: