共用方式為


處理 DataSet 事件

物件 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初始化 ,並將設定 IsInitializedfalse。 方法 EndInit 會結束 的 DataSet初始化,並將它設定為 true。 Visual Studio 設計環境會使用這些方法來初始化由另一個元件正在使用的 DataSet 。 您通常不會在程式代碼中使用它們。

已處置事件

DataSet 衍生自 MarshalByValueComponent 類別,這會同時公開 Dispose 方法與 Disposed 事件。 事件 Disposed 會新增事件處理程式,以接聽元件上已處置的事件。 您可以使用 Disposed 的事件 DataSet,如果要在呼叫 Dispose 方法時執行程式碼。 Dispose 釋放MarshalByValueComponent所使用的資源。

備註

DataSetDataTable物件繼承自MarshalByValueComponent,並支援ISerializable遠端介面。 這些是唯一可以被遠端操作的 ADO.NET 物件。 如需詳細資訊,請參閱 .NET 遠端處理

如需使用 DataSet時可用之其他事件的資訊,請參閱 處理 DataTable 事件處理 DataAdapter 事件

另請參閱