文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用ADO.NET RowUpdated添加删除事件处理程序

2023-06-17 19:53

关注

这篇文章主要讲解了“怎么用ADO.NET RowUpdated添加删除事件处理程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用ADO.NET RowUpdated添加删除事件处理程序”吧!

在数据源中处理对 DataSet 中某行的任何更新之前,将引发了RowUpdated。在数据源中处理对 DataSet 中某行的任何更新之后,将引发 RowUpdated。

因此,可以使用 RowUpdating 执行下列操作:在更新行为发生之前对其进行修改,在更新将发生时提供附加处理,保留对已更新行的引用,取消当前更新并将其安排在以后进行批处理,等等。RowUpdated 对于响应更新期间发生的错误和异常是非常有用的。 您可以向 DataSet 以及重试逻辑等添加错误信息。

传递给 RowUpdating 和 RowUpdated 事件的 RowUpdatingEventArgs 和 RowUpdatedEventArgs 参数包括: Command 属性,它引用用来执行更新的 Command 对象;Row 属性,它引用包含更新信息的 DataRow 对象;StatementType 属性,它指示所执行的更新类型;TableMapping(如果适用);以及操作的 Status。

可以使用 Status 属性来确定在执行该操作期间是否发生了错误;如果需要,还可以使用该属性来控制对当前行和结果行所执行的操作。 当该事件发生时,Status 属性将为 Continue 或 ErrorsOccurred。 下表演示为了控制更新过程中的后继操作,可以将 Status 属性设置为的值。如果将 Status 属性设置为 ErrorsOccurred,则会引发异常。 您可以通过将 Errors 属性设置为所需异常来控制所引发的异常。 如果使用 Status 的其他值之一,则可防止引发异常。

也可以使用 ContinueUpdateOnError 属性为更新的行处理错误。 如果 DataAdapter.ContinueUpdateOnError 为 true,那么当行的更新导致引发异常时,该异常的文本被放入特定行的 RowError 信息中,并且处理将会继续而不会引发异常。 这使您能够在 Update 完成时对错误作出响应;与此相反的是ADO.NET RowUpdated事件,它使您能够在遇到错误时响应错误。

以下代码示例显示如何添加和移除事件处理程序。 RowUpdating 事件处理程序编写带有时间戳的所有已删除记录的日志。ADO.NET RowUpdated事件处理程序将错误信息添加到 DataSet 中行的 RowError 属性、取消显示异常,并继续处理(镜像 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添加删除事件处理程序”的内容了,经过本文的学习后,相信大家对怎么用ADO.NET RowUpdated添加删除事件处理程序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯