Controlar eventos de DataSetHandling DataSet Events

El objeto DataSet proporciona tres eventos: Disposed, Initializedy MergeFailed.The DataSet object provides three events: Disposed, Initialized, and MergeFailed.

Evento MergeFailedThe MergeFailed Event

El evento de uso más común del objeto DataSet es MergeFailed, que se inicia cuando los esquemas de los objetos DataSet que se están combinando entran en conflicto.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. Esto se produce cuando los objetos DataRow de origen y de destino tienen el mismo valor de clave principal y la propiedad EnforceConstraints se establece en true.This occurs when a target and source DataRow have the same primary key value, and the EnforceConstraints property is set to true. Por ejemplo, si las columnas de clave principal de una tabla que se está combinando son las mismas entre las tablas de los dos objetos DataSet , se produce una excepción y se provoca el 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. El objeto MergeFailedEventArgs pasado como parámetro al evento MergeFailed tiene una propiedad Conflict que identifica el conflicto en el esquema entre los dos objetos DataSet , y una propiedad Table que identifica el nombre de la tabla en conflicto.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.

En el fragmento de código siguiente se muestra cómo agregar un controlador de eventos para el 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

El evento Initialized se produce después de que el constructor de DataSet inicialice una nueva instancia del objeto DataSet.The Initialized event occurs after the DataSet constructor initializes a new instance of the DataSet.

La propiedad IsInitialized devuelve true si se ha completado la inicialización de DataSet ; de lo contrario, devuelve false.The IsInitialized property returns true if the DataSet has completed initialization; otherwise it returns false. El método BeginInit , que comienza la inicialización de DataSet, establece IsInitialized en false.The BeginInit method, which begins the initialization of a DataSet, sets IsInitialized to false. El método EndInit , que finaliza la inicialización del objeto DataSet, lo establece en true.The EndInit method, which ends the initialization of the DataSet, sets it to true. El entorno de diseño de Visual Studio usa estos métodos para inicializar DataSet un que está siendo utilizado por otro componente.These methods are used by the Visual Studio design environment to initialize a DataSet that is being used by another component. No los utilizará habitualmente en el código.You will not commonly use them in your code.

Evento DisposedThe Disposed Event

El objetoDataSet se deriva de la clase MarshalByValueComponent , que expone el método Dispose y el evento Disposed .DataSet is derived from the MarshalByValueComponent class, which exposes both the Dispose method and the Disposed event. El Disposed evento agrega un controlador de eventos para escuchar el evento eliminado en el componente.The Disposed event adds an event handler to listen to the disposed event on the component. Puede usar el Disposed evento de un DataSet si desea ejecutar código cuando se llama al Dispose método.You can use the Disposed event of a DataSet if you want to execute code when the Dispose method is called. Disposelibera los recursos utilizados por MarshalByValueComponent.Dispose releases the resources used by the MarshalByValueComponent.

Nota

Los DataSet objetos DataTable y se heredan de MarshalByValueComponent y ISerializable admiten la interfaz para la comunicación remota.The DataSet and DataTable objects inherit from MarshalByValueComponent and support the ISerializable interface for remoting. Éstos son los únicos objetos ADO.NET a los que se puede tener acceso remoto.These are the only ADO.NET objects that can be remoted. Para obtener más información, vea .NET Remoting.For more information, see .NET Remoting.

Para obtener información sobre otros eventos disponibles al trabajar con DataSet, vea controlar eventos DataTable y controlar eventos DataAdapter.For information about other events available when working with a DataSet, see Handling DataTable Events and Handling DataAdapter Events.

Vea tambiénSee also