How to get the datakeynames value in the rowupdating event
Once this groundwork has been laid, we'll be ready to create the ASP. To create a new Typed Data Set, right-click on the .As we saw in the first tutorial, doing so will add a new Table Adapter to the Typed Data Set, automatically launching the Table Adapter Configuration Wizard.Both click the Edit button in the Grid View around the same time.Jisun changes the product name to "Chai Tea" and clicks the Update button. At this point in time, the database has the values "Chai Tea," the category Beverages, the supplier Exotic Liquids, and so on for this particular product.The Data Access Layer must issue a SQL statement that will only update the record if the original values that the user started editing are identical to the values still in the database. Figure 2: For the Update or Delete to Succeed, the Original Values Must Be Equal to the Current Database Values (Click to view full-size image) There are various approaches to implementing optimistic concurrency (see Peter A.Bromberg's Optmistic Concurrency Updating Logic for a brief look at a number of options). NET Typed Data Set provides one implementation that can be configured with just the tick of a checkbox.
For example, if a user locks a record for editing and then leaves for the day before unlocking it, no other user will be able to update that record until the original user returns and completes his update.
Figure 6: Enable Optimistic Concurrency Control by Checking the "Use optimistic concurrency" Check Box (Click to view full-size image) Lastly, indicate that the Table Adapter should use the data access patterns that both fill a Data Table and return a Data Table; also indicate that the DB direct methods should be created. Count = 0 Then ' no matching record found, return false Return False End If Dim product As _ Northwind Optimistic Concurrency.
Change the method name for the Return a Data Table pattern from Get Data to Get Products, so as to mirror the naming conventions we used in our original DAL. Products Optimistic Concurrency Row = products(0) ' STEP 2: Assign the original values to the product instance Assign All Product Values( _ product, original_product Name, original_supplier ID, _ original_category ID, original_quantity Per Unit, original_unit Price, _ original_units In Stock, original_units On Order, original_reorder Level, _ original_discontinued) ' STEP 3: Accept the changes product.
Without any concurrency policy in place, when two users are simultaneously editing a single record, the user who commits her changes last will override the changes made by the first.
For example, imagine that two users, Jisun and Sam, were both visiting a page in our application that allowed visitors to update and delete the products through a Grid View control.
In this tutorial we'll examine how to implement optimistic concurrency control.