/// <summary>
/// Get the deleted record you provide as non deleted row; NOTE: the State of the row is ADDED.
/// </summary>
/// <param name="sourceDataTable"></param>
/// <param name="deletedDataRow"></param>
/// <returns></returns>
public static DataRow readDeletedDataRow(DataTable sourceDataTable,DataRow deletedDataRow) {
int deletedDataRowIndex = sourceDataTable.Rows.IndexOf(deletedDataRow);
DataView deletedView = new DataView(sourceDataTable, null, null, DataViewRowState.Deleted);
DataTable deletedRecordsTable = deletedView.ToTable();
return deletedRecordsTable.Rows[deletedDataRowIndex];
}
Developing with CSharp many time you feel a strange feeling... then feeling of lost and how to solve it. Fortunately MSDN has done a good work to help the developers. .net offers thousand ways to do several things! This is the worst thing… because, you do not know where to start from and what works in real world! I hope to help you with your CSharpache.
Showing posts with label datarow. Show all posts
Showing posts with label datarow. Show all posts
Monday, 10 October 2011
Accessing deleted row field values from data table with C#.net
Solution #1
Sometimes we delete data row in data table of dataset. Then we may need again to get deleted row field information from the dataset back for some calculation purpose. It gives error if we want to access the row data from the data table telling "The data row has been deleted ...".
We can still access the field data information by using DataRowVersion.Original parameter. For example
int customerId = Convert.ToInt32( DataTable1.Rows[0][0, DataRowVersion.Original];
This will give the original version of the row data. And voila - we have our original data back.
Solution #2
We can make a Data View out of the datatable. Then convert that data view into data table again. This will give us the original data. But this time the datarowstate = "added".
We see one example code for this.
DataView myView = new DataView(sourceTable, null, null, DataViewRowState.Deleted);
DataTable myTable = myView.ToTable();
Subscribe to:
Posts (Atom)