Rowupdating event of the dataadapter
to modify update behavior before it happens, to provide additional handling when an update will occur, to retain a reference to an updated row, to cancel the current update and schedule it for a batch process to be processed later, and so on. ' Assumes that connection is a valid Sql Connection object. Close() End If End Sub Private Shared Sub On Row Updated( _ sender As Object, args As Sql Row Updated Event Args) If args. Fill(data Set, "This Table") Private Shared Sub Fill Error(sender As Object, _ args As Fill Error Event Args) If args. According to the docs, it cannot be used to "intercept" the update process and prevent the update command from being executed: command gets executed in any case.Since this event is not well suited to client-side data-validation, what is a good (best practices) use of the event?
The Fill Error Event Handler is as follows: Row Updated and Row Updating are two more events that a data adapter supports.
You can use Row Updating to modify update behavior before it happens, to provide additional handling when an update will occur, to retain a reference to an updated row, to cancel the current update and schedule it for a batch process to be processed later, and so on.
Row Updated is useful for responding to errors and exceptions that occur during the update.
So, with the use of Extension Methods, I added two new methods to the Db Data Adapter abstract class that will allow the adding of event handlers for those two specific events, and here is my implementation (edited 4/23/2013 for handling of instance or static handler methods): I'm using the base Row Updated Event Args & Row Updating Event Args for the event arguments that get returned to the delegate, so if you need provider-specific members that are only available through the provider defined classes that are derived from the above two base event args classes, then they will need to be cast to those classes.
Otherwise, it works fine, and now I have provider-independent event handlers available from the Db Data Adapter class (which is how Microsoft should have implemented them to begin with). ''' Public Delegate Sub Row Updating Event Handler(sender As Object, e As Row Updating Event Args) Public Module Db Data Adapter Extension Sub New() End Sub Private Function Get Event(event Name As String, type As Type) As Event Info Return type.