请单击以进行评分并提供反馈
MSDN
MSDN Library
访问数据
ADO.NET
 处理与批量更新有关的事件和错误

  开启低带宽视图
.NET Framework 开发人员指南
处理与批量更新有关的事件和错误

DataAdapter 包含两个与更新有关的事件:RowUpdating 和 RowUpdated。在以前版本的 ADO.NET 中,在禁用批处理时,这两个事件会为每个处理的行生成一次。RowUpdating 在更新发生之前生成,而 RowUpdated 在数据库更新完成后生成。

使用批量更新的事件行为变化

在启用批处理时,多个行在单个数据库操作中更新。因此,每一批只发生一次 RowUpdated 事件,而每个处理的行都会发生 RowUpdating 事件。在禁用批处理时,则是一对一地交替引发两个事件,一行引发一个 RowUpdating 事件和一个 RowUpdated 事件,下一行也引发一个 RowUpdating 事件和一个 RowUpdated 事件,直到所有行处理完毕。

访问已更新的行

在禁用批处理时,正在更新的行可以使用 RowUpdatedEventArgs 类的 Row 属性访问。

在启用批处理时,为多个行生成单个 RowUpdated 事件。因此,每一行的 Row 属性的值为空。RowUpdating 事件仍会为每一行生成。RowUpdatedEventArgs 类的 CopyToRows 方法使您可以通过将行的引用复制到数组中,访问所处理的行。如果未在处理任何行,CopyToRows 将引发 ArgumentNullException。在调用 CopyToRows 方法之前,使用 RowCount 属性返回已处理的行数。

处理数据错误

批处理执行的效果与分别执行每个语句相同。语句按照添加到批处理中的顺序执行。在批处理模式下处理错误的方式与禁用批处理模式时相同。每一行单独处理。只有已在数据库中成功处理的行才会在 DataTable 内对应的 DataRow 中更新。

数据提供程序和后端数据库服务器确定批处理执行所支持的 SQL 构造。如果提交执行不支持的语句,可能会引发异常。

请参见

社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker