If, on the other hand, Compare All Values is used, the Update method must accept both the updated and original non-primary key field values along with the original primary key field(s).
To help clarify any confusion, let's look at a concrete example.
By default, the Text Boxes have no validation controls associated with them, but your business rules might require certain validation.
A particular field may be required or might need to be entered in a specific format.
Instead of just using WHERE [Product ID] = @original_Product ID, with optimistic concurrency the WHERE clause would have read: This would prevent an UPDATE from happening if, between the time the user clicked a Grid View row's Edit button and having clicked the Update button, another user had modified that particular row.
For this demo, though, we'll need to add an Update method to the Product DAL class.
This will add a Command Field to the Grid View with an Edit button.