处理数据集事件

DataSet 对象提供三个事件: DisposedInitializedMergeFailed

MergeFailed 事件

DataSet 对象的最常用事件是 MergeFailed,当要合并的 DataSet 对象的架构发生冲突时,会引发该事件。 当目标和源 DataRow 有相同的主键值,且 EnforceConstraints 属性设置为 true时会发生这种情况。 例如,如果所合并表的主键列与两个 DataSet 对象中的表的相同,则将发生异常并引发 MergeFailed 事件。 传递给 MergeFailedEventArgs 事件的 MergeFailed 对象具有 Conflict 属性(标识两个 DataSet 对象之间的架构冲突)和 Table 属性(标识发生冲突的表的名称)。

下面的代码段演示如何为 MergeFailed 事件添加事件处理程序。

AddHandler workDS.MergeFailed, New MergeFailedEventHandler( _  
  AddressOf DataSetMergeFailed)  
  
Private Shared Sub DataSetMergeFailed(  _  
  sender As Object,args As MergeFailedEventArgs)  
  Console.WriteLine("Merge failed for table " & args.Table.TableName)  
  Console.WriteLine("Conflict = " & args.Conflict)  
End Sub  
workDS.MergeFailed += new MergeFailedEventHandler(DataSetMergeFailed);  
  
private static void DataSetMergeFailed(  
  object sender, MergeFailedEventArgs args)  
{  
  Console.WriteLine("Merge failed for table " + args.Table.TableName);  
  Console.WriteLine("Conflict = " + args.Conflict);  
}  

初始化事件

Initialized 构造函数初始化 DataSet 的新实例后会发生 DataSet事件。

如果 IsInitialized 已完成初始化, true 属性会返回 DataSet ;否则,返回 falseBeginInit 方法,它开始初始化 DataSet,将 IsInitialized 设置为 falseEndInit 方法(用于结束 DataSet的初始化)将它设置为 true。 Visual Studio 设计环境使用这些方法初始化其他组件使用的 DataSet。 通常不会在代码中使用这些方法。

释放事件

DataSet 派生自 MarshalByValueComponent 类,该类可公开 Dispose 方法和 Disposed 事件。 Disposed 事件添加了一个事件处理程序以侦听组件上已释放的事件。 如果要在调用 Dispose 方法时执行代码,则可以使用 DataSetDisposed 事件。 Dispose 释放由 MarshalByValueComponent 使用的资源。

备注

DataSetDataTable 对象从 MarshalByValueComponent 继承而来,并且支持用于远程处理的 ISerializable 接口。 这两个对象是唯一可远程处理的 ADO.NET 对象。 有关详细信息,请参阅 .NET 远程处理

有关使用 DataSet 时可用的其他事件的信息,请参阅 和处理 DataAdapter 事件处理 DataAdapter 事件

请参阅