偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開(kāi)發(fā) 后端
文章介紹了使用ADO.NET RowUpdated執(zhí)行操作的范圍和RowUpdated對(duì)事件的處理,希望對(duì)大家有技術(shù)上的幫助。

ADO.NET RowUpdated還是比較常用的,于是我研究了一下,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。在數(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 屬性,它引用用來(lái)執(zhí)行更新的 Command 對(duì)象;Row 屬性,它引用包含更新信息的 DataRow 對(duì)象;StatementType 屬性,它指示所執(zhí)行的更新類(lèi)型;TableMapping(如果適用);以及操作的 Status。

#T#可以使用 Status 屬性來(lái)確定在執(zhí)行該操作期間是否發(fā)生了錯(cuò)誤;如果需要,還可以使用該屬性來(lái)控制對(duì)當(dāng)前行和結(jié)果行所執(zhí)行的操作。 當(dāng)該事件發(fā)生時(shí),Status 屬性將為 Continue 或 ErrorsOccurred。 下表演示為了控制更新過(guò)程中的后繼操作,可以將 Status 屬性設(shè)置為的值。如果將 Status 屬性設(shè)置為 ErrorsOccurred,則會(huì)引發(fā)異常。 您可以通過(guò)將 Errors 屬性設(shè)置為所需異常來(lái)控制所引發(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 事件處理程序編寫(xiě)帶有時(shí)間戳的所有已刪除記錄的日志。ADO.NET RowUpdated事件處理程序?qū)㈠e(cuò)誤信息添加到 DataSet 中行的 RowError 屬性、取消顯示異常,并繼續(xù)處理(鏡像 ContinueUpdateOnError = true 的行為)。

  1. ' Assumes that connection is a valid SqlConnection object.  
  2. Dim custAdapter As SqlDataAdapter = New SqlDataAdapter( _  
  3. "SELECT CustomerID, CompanyName FROM Customers", connection)  
  4.  
  5. ' Add handlers.  
  6. AddHandler custAdapter.RowUpdating, New SqlRowUpdatingEventHandler( _  
  7. AddressOf OnRowUpdating)  
  8. AddHandler custAdapter.RowUpdated, New SqlRowUpdatedEventHandler(  
  9. AddressOf OnRowUpdated)  
  10.  
  11. ' Set DataAdapter command properties, fill DataSet, and modify DataSet.  
  12.  
  13. custAdapter.Update(custDS, "Customers")  
  14.  
  15. ' Remove handlers.  
  16. RemoveHandler custAdapter.RowUpdating, _  
  17. New SqlRowUpdatingEventHandler(AddressOf OnRowUpdating)  
  18. RemoveHandler custAdapter.RowUpdated, _  
  19. New SqlRowUpdatedEventHandler(AddressOf OnRowUpdated)  
  20.  
  21. Private Shared Sub OnRowUpdating(sender As Object, _  
  22. args As SqlRowUpdatingEventArgs)  
  23. If args.StatementType = StatementType.Delete Then  
  24. Dim tw As System.IO.TextWriter = _ 
  25. System.IO.File.AppendText("Deletes.log")  
  26. tw.WriteLine( _  
  27. "{0}: Customer {1} Deleted.", DateTime.Now, args.Row(_  
  28. "CustomerID", DataRowVersion.Original))  
  29. tw.Close()  
  30. End If  
  31. End Sub  
  32.  
  33. Private Shared Sub OnRowUpdated( _  
  34. sender As Object, args As SqlRowUpdatedEventArgs)  
  35. If args.Status = UpdateStatus.ErrorsOccurred  
  36. args.Status = UpdateStatus.SkipCurrentRow  
  37. argsargs.Row.RowError = args.Errors.Message  
  38. End If  
  39. End Sub 
責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2009-12-29 15:38:05

ADO.NET語(yǔ)句

2009-11-11 17:12:25

ADO.NET批處理

2009-11-12 11:38:03

ADO.NET連接事件

2009-12-31 16:09:22

ADO與ADO.NET

2009-12-30 15:17:06

ADO.NET選項(xiàng)

2009-12-29 16:12:25

ADO程序員

2009-12-22 14:15:08

ADO.Net處理數(shù)據(jù)

2009-12-30 16:05:20

ADO.NET實(shí)例

2009-12-23 11:25:30

ADO.NET處理

2009-11-12 12:39:16

ADO.NET Sta

2009-11-13 09:45:54

ADO.NET程序集

2009-11-13 14:29:13

ADO.NET Mer

2009-12-21 16:45:41

ADO.NET程序

2009-11-12 14:03:03

ADO.NET數(shù)據(jù)集約

2009-12-28 15:11:36

ADO.NET專(zhuān)家

2010-01-04 13:16:31

ADO.NET命令

2009-10-29 11:18:47

ADO.NET SQL

2009-11-03 15:47:10

ADO.NET數(shù)據(jù)異步

2009-12-21 16:02:48

ADO.NET命令

2009-11-03 16:37:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)