Gestione di eventi datasetHandling DataSet Events

L'oggetto DataSet fornisce tre eventi: Disposed, Initializede MergeFailed.The DataSet object provides three events: Disposed, Initialized, and MergeFailed.

Evento MergeFailedThe MergeFailed Event

L'evento dell'oggetto DataSet usato più di frequente è MergeFailed, che viene generato quando gli schemi degli oggetti DataSet sono in conflitto.The most commonly used event of the DataSet object is MergeFailed, which is raised when the schema of the DataSet objects being merged are in conflict. Questo problema si verifica quando gli oggetti DataRow di origine e di destinazione presentano lo stesso valore di chiave primaria e la proprietà EnforceConstraints è impostata su true.This occurs when a target and source DataRow have the same primary key value, and the EnforceConstraints property is set to true. Se ad esempio le colonne relative alla chiave primaria di una tabella da unire sono uguali tra le tabelle dei due oggetti DataSet , si verifica un'eccezione e viene generato un evento MergeFailed .For example, if the primary key columns of a table being merged are the same between the tables in the two DataSet objects, an exception is thrown and the MergeFailed event is raised. L'oggetto MergeFailedEventArgs passato all'evento MergeFailed include una proprietà Conflict che identifica il conflitto di schema tra i due oggetti DataSet e una proprietà Table che identifica il nome della tabella in conflitto.The MergeFailedEventArgs object passed to the MergeFailed event have a Conflict property that identifies the conflict in schema between the two DataSet objects, and a Table property that identifies the name of the table in conflict.

Nel frammento di codice riportato di seguito viene illustrato come aggiungere un gestore per l'evento MergeFailed.The following code fragment demonstrates how to add an event handler for the MergeFailed event.

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);  
}  

Evento InitializedThe Initialized Event

L'evento Initialized viene generato dopo che il costruttore di DataSet inizializza una nuova istanza del DataSet.The Initialized event occurs after the DataSet constructor initializes a new instance of the DataSet.

La proprietà IsInitialized restituisce true se l'inizializzazione del DataSet è stata completata; in caso contrario, restituisce false.The IsInitialized property returns true if the DataSet has completed initialization; otherwise it returns false. Il metodo BeginInit , che avvia l'inizializzazione di un DataSet, imposta IsInitialized su false.The BeginInit method, which begins the initialization of a DataSet, sets IsInitialized to false. Il metodo EndInit , che termina l'inizializzazione del DataSet, lo imposta su true.The EndInit method, which ends the initialization of the DataSet, sets it to true. Questi metodi vengono usati dall'ambiente di progettazione di Visual Studio per inizializzare un DataSet che viene utilizzato da un altro componente.These methods are used by the Visual Studio design environment to initialize a DataSet that is being used by another component. Non vengono comunemente usati nel codice.You will not commonly use them in your code.

Evento DisposedThe Disposed Event

DataSet è derivato dalla classe MarshalByValueComponent , che espone il metodo Dispose e l'evento Disposed .DataSet is derived from the MarshalByValueComponent class, which exposes both the Dispose method and the Disposed event. Il Disposed eventi aggiunge un gestore eventi per restare in attesa per l'evento disposed sul componente.The Disposed event adds an event handler to listen to the disposed event on the component. È possibile utilizzare il Disposed evento di un DataSet se si desidera eseguire il codice quando il Dispose metodo viene chiamato.You can use the Disposed event of a DataSet if you want to execute code when the Dispose method is called. Dispose Rilascia le risorse usate dal MarshalByValueComponent.Dispose releases the resources used by the MarshalByValueComponent.

Nota

Il DataSet e DataTable oggetti ereditano MarshalByValueComponent e supportano il ISerializable interfaccia per la comunicazione remota.The DataSet and DataTable objects inherit from MarshalByValueComponent and support the ISerializable interface for remoting. Si tratta degli unici oggetti ADO.NET che è possibile eseguire in remoto.These are the only ADO.NET objects that can be remoted. Per ulteriori informazioni, vedere oggetti remoti.For more information, see Remote Objects.

Per informazioni su altri eventi disponibili quando si lavora con un DataSet, vedere gestione di eventi DataTable e gestione di eventi DataAdapter.For information about other events available when working with a DataSet, see Handling DataTable Events and Handling DataAdapter Events.

Vedere ancheSee Also

Oggetti DataSet, DataTable e DataViewDataSets, DataTables, and DataViews
Convalida dei datiValidating Data
Recupero e modifica di dati in ADO.NETRetrieving and Modifying Data in ADO.NET
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center