处理数据集事件

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;否则返回 false。 方法 BeginInit 开始对 DataSet 进行初始化,并将 IsInitialized 设置为 falseEndInit 方法(用于结束 DataSet的初始化)将它设置为 true。 Visual Studio 设计环境使用这些方法来初始化由其他组件使用的DataSet。 你不会经常在代码中使用它们。

释放事件

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

注释

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

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

另请参阅