el método merge se utiliza para combinar dos objetos datatable que tienen esquemas muy similares....

2
Fusionar Objetos – Merge El método Merge se utiliza para combinar dos objetos DataTable que tienen esquemas muy similares. Las combinaciones se suelen utilizar en aplicaciones cliente para incorporar los últimos cambios de un origen de datos en un objeto DataTable existente. Esto permite a la aplicación cliente tener un objeto DataTable actualizado con los datos más recientes del origen de datos. La operación de combinación sólo tiene en cuenta la tabla original y la tabla que se va a combinar. Las tablas secundarias no se incluyen, ni se ven afectadas. Si una tabla tiene una o varias tablas secundarias, definidas como parte de una relación, cada tabla secundaria se debe combinar individualmente. Se suele llamar al método Merge al final de una serie de procedimientos que incluyen la validación de cambios, la conciliación de errores, la actualización del origen de datos con los cambios y, por último, la actualización del objetoDataTable existente. Al realizar una combinación, los cambios realizados a los datos existentes antes de la combinación se conservan de manera predeterminada durante la operación de combinación. Los desarrolladores pueden modificar este comportamiento llamando a una de las otras dos sobrecargas de este método y especificando un valor false para el parámetro preserveChanges. En una aplicación cliente, lo normal es disponer de un único botón en el que el usuario puede hacer clic para recopilar datos modificados y validarlos antes de volver a enviarlos a un componente de nivel medio. En este escenario, primero se invoca al método GetChanges. Ese método devuelve un segundo DataTable optimizado para la validación y la combinación. Este segundo objeto DataTable sólo contiene los objetos DataRow que se han cambiado, lo que da como resultado un subconjunto del objeto DataTable original. Este subconjunto normalmente es más pequeño y, por tanto, se puede volver a pasar de forma más eficaz a un componente de nivel medio. A continuación, el componente de nivel medio actualiza el origen de datos original con los cambios mediante procedimientos almacenados. Posteriormente, el nivel medio puede volver a enviar un nuevo DataTable que incluya datos originales y los datos más recientes del origen de datos (ejecutando de nuevo la consulta original), o bien puede volver a enviar el subconjunto con todos los cambios que se le hayan realizado desde el origen de datos. Por ejemplo, si el origen de datos crea automáticamente valores de clave principal únicos, dichos valores se pueden volver a propagar a la aplicación cliente. En ambos casos, el DataTable devuelto se puede volver a combinar con el DataTable original de la aplicación cliente mediante el método Merge. Al combinar un nuevo objeto DataTable de origen en el destino, las filas de origen en las que el valor de DataRowState sea Unchanged , Modified o Deleted se hacen coincidir con las filas de destino que tengan los mismos valores de clave principal. Las filas de origen en las que el valor

Upload: christian-requejo

Post on 08-Dec-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: El método Merge se utiliza para combinar dos objetos DataTable que tienen esquemas muy similares. Las combinaciones se suelen utilizar en aplicaciones

Fusionar Objetos – MergeEl método Merge se utiliza para combinar dos objetos DataTable que tienen esquemas muy similares. Las combinaciones se suelen utilizar en aplicaciones cliente para incorporar los últimos cambios de un origen de datos en un objeto DataTable existente. Esto permite a la aplicación cliente tener un objeto DataTable actualizado con los datos más recientes del origen de datos.La operación de combinación sólo tiene en cuenta la tabla original y la tabla que se va a combinar. Las tablas secundarias no se incluyen, ni se ven afectadas. Si una tabla tiene una o varias tablas secundarias, definidas como parte de una relación, cada tabla secundaria se debe combinar individualmente.Se suele llamar al método Merge al final de una serie de procedimientos que incluyen la validación de cambios, la conciliación de errores, la actualización del origen de datos con los cambios y, por último, la actualización del objetoDataTable existente.Al realizar una combinación, los cambios realizados a los datos existentes antes de la combinación se conservan de manera predeterminada durante la operación de combinación. Los desarrolladores pueden modificar este comportamiento llamando a una de las otras dos sobrecargas de este método y especificando un valor false para el parámetro preserveChanges.En una aplicación cliente, lo normal es disponer de un único botón en el que el usuario puede hacer clic para recopilar datos modificados y validarlos antes de volver a enviarlos a un componente de nivel medio. En este escenario, primero se invoca al método GetChanges. Ese método devuelve un segundo DataTable optimizado para la validación y la combinación. Este segundo objeto DataTable sólo contiene los objetos DataRow que se han cambiado, lo que da como resultado un subconjunto del objeto DataTable original. Este subconjunto normalmente es más pequeño y, por tanto, se puede volver a pasar de forma más eficaz a un componente de nivel medio. A continuación, el componente de nivel medio actualiza el origen de datos original con los cambios mediante procedimientos almacenados. Posteriormente, el nivel medio puede volver a enviar un nuevo DataTable que incluya datos originales y los datos más recientes del origen de datos (ejecutando de nuevo la consulta original), o bien puede volver a enviar el subconjunto con todos los cambios que se le hayan realizado desde el origen de datos. Por ejemplo, si el origen de datos crea automáticamente valores de clave principal únicos, dichos valores se pueden volver a propagar a la aplicación cliente. En ambos casos, el DataTable devuelto se puede volver a combinar con el DataTable original de la aplicación cliente mediante el método Merge.Al combinar un nuevo objeto DataTable de origen en el destino, las filas de origen en las que el valor deDataRowState sea Unchanged, Modified o Deleted se hacen coincidir con las filas de destino que tengan los mismos valores de clave principal. Las filas de origen en las que el valor de DataRowState sea Added se hacen coincidir con las nuevas filas de destino que tengan los mismos valores de clave principal que las nuevas filas de origen.

Page 2: El método Merge se utiliza para combinar dos objetos DataTable que tienen esquemas muy similares. Las combinaciones se suelen utilizar en aplicaciones