Retrieving Updated Values from the Data Source
There are three techniques that can retrieve updated data from the data source.
The first technique is to use a
batch
query to return the new value using a query after the update command
has executed. Example 15-3 demonstrates this for an
AutoIncrement
column by creating a batch insert
statement containing the statements:
"SET @OrderID = Scope_Identity();" + "SELECT @OrderID OrderID;";
If the row also contains a timestamp
column named
rowversion
, the following code can be used with
the insert statement to retrieve the new timestamp value:
"SET @OrderID=Scope_Identity();" + "SELECT @OrderID OrderId, rowversion WHERE OrderID = @OrderID;";
This technique requires that the UpdatedRowSource
property update commands be set to either Both
or
FirstReturnedRecord
.
The second technique uses output parameters to retrieve
updated data. Example 15-3 demonstrates the use of
this method with an AutoIncrement
column by
creating an output parameter for the OrderID
on
the InsertCommand
:
params.Add("@OrderID", SqlDbType.Int, 0, "OrderID"); params.Direction = ParameterDirection.Output;
This technique requires that the UpdatedRowSource
property for the update command be set to either
Both
or OutputParameters
.
The third technique handles the DataAdapter
RowUpdated
event. An
event handler is first attached to the data adapter:
da.RowUpdated += new SqlRowUpdateEventHandler(da_RowUpdated);
The event handler retrieves the new AutoIncrement
value and stores it in the ...
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.