Updating Rows
There are three ways to modify the contents of a row. First, you can simply replace the values of the column with a new value:
DataRow row; // ... code to retrieve data into the row // access the column by its ordinal and update the value row[0] = "New Value"; // access the column by its name and update the value row["MyColumn"] = "New Value";
You can also buffer the updates to a row by calling the
BeginEdit( )
, EndEdit( )
, and CancelEdit( )
methods. The
BeginEdit( )
method turns off all constraints and
suspends events used to enforce validation rules. If
CancelEdit( )
is called, the changes in the buffer
are discarded. When EndEdit( )
is called, the data
is validated against the constraints, and the appropriate events are
raised. BeginEdit( )
is called implicitly when a
user changes the value of a data-bound control. EndEdit( )
is called implicitly when AcceptChanges( )
is called.
DataTable dt = new DataTable(); // ... code to retrieve data into the DataTable object DataRow row = dt.Rows[0]; row.BeginEdit(); foreach(DataColumn col in dt.Columns) { // ...modify the column value } bool rowValid = true; // ...check the values in the row to make sure that they are valid if(rowValid) { row.CancelEdit(); } else { row.EndEdit(); }
Finally, a row can be updated by accessing the row through the
ItemArray
property. When this method is called,
an attempt is made to locate the row matching the primary key. If the
row is found, it is updated with the values in the
ItemArray ...
Get ADO.NET in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.