溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用ADO.NET RowUpdated添加刪除事件處理程序

發(fā)布時(shí)間:2021-12-03 16:59:58 來源:億速云 閱讀:110 作者:iii 欄目:編程語言

這篇文章主要講解了“怎么用ADO.NET RowUpdated添加刪除事件處理程序”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么用ADO.NET RowUpdated添加刪除事件處理程序”吧!

在數(shù)據(jù)源中處理對(duì) DataSet 中某行的任何更新之前,將引發(fā)了RowUpdated。在數(shù)據(jù)源中處理對(duì) DataSet 中某行的任何更新之后,將引發(fā) RowUpdated。

因此,可以使用 RowUpdating 執(zhí)行下列操作:在更新行為發(fā)生之前對(duì)其進(jìn)行修改,在更新將發(fā)生時(shí)提供附加處理,保留對(duì)已更新行的引用,取消當(dāng)前更新并將其安排在以后進(jìn)行批處理,等等。RowUpdated 對(duì)于響應(yīng)更新期間發(fā)生的錯(cuò)誤和異常是非常有用的。 您可以向 DataSet 以及重試邏輯等添加錯(cuò)誤信息。

傳遞給 RowUpdating 和 RowUpdated 事件的 RowUpdatingEventArgs 和 RowUpdatedEventArgs 參數(shù)包括: Command 屬性,它引用用來執(zhí)行更新的 Command 對(duì)象;Row 屬性,它引用包含更新信息的 DataRow 對(duì)象;StatementType 屬性,它指示所執(zhí)行的更新類型;TableMapping(如果適用);以及操作的 Status。

可以使用 Status 屬性來確定在執(zhí)行該操作期間是否發(fā)生了錯(cuò)誤;如果需要,還可以使用該屬性來控制對(duì)當(dāng)前行和結(jié)果行所執(zhí)行的操作。 當(dāng)該事件發(fā)生時(shí),Status 屬性將為 Continue 或 ErrorsOccurred。 下表演示為了控制更新過程中的后繼操作,可以將 Status 屬性設(shè)置為的值。如果將 Status 屬性設(shè)置為 ErrorsOccurred,則會(huì)引發(fā)異常。 您可以通過將 Errors 屬性設(shè)置為所需異常來控制所引發(fā)的異常。 如果使用 Status 的其他值之一,則可防止引發(fā)異常。

也可以使用 ContinueUpdateOnError 屬性為更新的行處理錯(cuò)誤。 如果 DataAdapter.ContinueUpdateOnError 為 true,那么當(dāng)行的更新導(dǎo)致引發(fā)異常時(shí),該異常的文本被放入特定行的 RowError 信息中,并且處理將會(huì)繼續(xù)而不會(huì)引發(fā)異常。 這使您能夠在 Update 完成時(shí)對(duì)錯(cuò)誤作出響應(yīng);與此相反的是ADO.NET RowUpdated事件,它使您能夠在遇到錯(cuò)誤時(shí)響應(yīng)錯(cuò)誤。

以下代碼示例顯示如何添加和移除事件處理程序。 RowUpdating 事件處理程序編寫帶有時(shí)間戳的所有已刪除記錄的日志。ADO.NET RowUpdated事件處理程序?qū)㈠e(cuò)誤信息添加到 DataSet 中行的 RowError 屬性、取消顯示異常,并繼續(xù)處理(鏡像 ContinueUpdateOnError = true 的行為)。

' Assumes that connection is a valid SqlConnection object.  Dim custAdapter As SqlDataAdapter = New SqlDataAdapter( _  "SELECT CustomerID, CompanyName FROM Customers", connection)   ' Add handlers.  AddHandler custAdapter.RowUpdating, New SqlRowUpdatingEventHandler( _  AddressOf OnRowUpdating)  AddHandler custAdapter.RowUpdated, New SqlRowUpdatedEventHandler(  AddressOf OnRowUpdated)   ' Set DataAdapter command properties, fill DataSet, and modify DataSet.   custAdapter.Update(custDS, "Customers")   ' Remove handlers.  RemoveHandler custAdapter.RowUpdating, _  New SqlRowUpdatingEventHandler(AddressOf OnRowUpdating)  RemoveHandler custAdapter.RowUpdated, _  New SqlRowUpdatedEventHandler(AddressOf OnRowUpdated)   Private Shared Sub OnRowUpdating(sender As Object, _  args As SqlRowUpdatingEventArgs)  If args.StatementType = StatementType.Delete Then  Dim tw As System.IO.TextWriter = _ System.IO.File.AppendText("Deletes.log")  tw.WriteLine( _  "{0}: Customer {1} Deleted.", DateTime.Now, args.Row(_  "CustomerID", DataRowVersion.Original))  tw.Close()  End If  End Sub   Private Shared Sub OnRowUpdated( _  sender As Object, args As SqlRowUpdatedEventArgs)  If args.Status = UpdateStatus.ErrorsOccurred  args.Status = UpdateStatus.SkipCurrentRow  argsargs.Row.RowError = args.Errors.Message  End If  End Sub

感謝各位的閱讀,以上就是“怎么用ADO.NET RowUpdated添加刪除事件處理程序”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么用ADO.NET RowUpdated添加刪除事件處理程序這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI