Actualización de datos mediante TableAdapter en aplicaciones de .NET Framework

Nota:

Los conjuntos de datos y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de la década de 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras están desconectadas de la base de datos. Son especialmente útiles para las aplicaciones que permiten a los usuarios modificar los datos y conservar los cambios en la base de datos. Aunque los conjuntos de datos han demostrado ser una tecnología de gran éxito, se recomienda que las nuevas aplicaciones de .NET usen Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.

Una vez modificados y validados los datos del conjunto de datos, puede devolver los datos actualizados a una base de datos llamando al método Update de TableAdapter. El método Update del adaptador actualiza una sola tabla de datos y ejecuta el comando correcto (INSERT, UPDATE o DELETE) basándose en el RowState de cada fila de datos de la tabla. Cuando un conjunto de datos tiene tablas relacionadas, Visual Studio genera una clase TableAdapterManager que se usa para realizar las actualizaciones. La clase TableAdapterManager garantiza que las actualizaciones se realicen en el orden correcto en función de las restricciones de clave externa definidas en la base de datos. Cuando se usan controles enlazados a datos, la arquitectura de enlace de datos crea una variable miembro de la clase TableAdapterManager denominada tableAdapterManager.

Nota

Al intentar actualizar un origen de datos con el contenido de un conjunto de datos, puede obtener errores. Para evitar errores, se recomienda colocar el código que llama al método Update del adaptador dentro de un bloque try/catch.

El procedimiento exacto para actualizar un origen de datos puede variar en función de las necesidades empresariales, pero incluye los pasos siguientes:

  1. Llame al método Update del adaptador en un bloque try/catch.

  2. Si se detecta una excepción, buscar la fila de datos que causó el error.

  3. Concilie el problema de la fila de datos (si es posible, mediante programación o presentando la fila incorrecta al usuario para que la modifique) y después vuelva a intentar la actualización (HasErrors, GetErrors).

Guardado de datos en una base de datos

Llame al método Update de TableAdapter. Pase el nombre de la tabla de datos que contiene los valores que se van a escribir en la base de datos.

Para actualizar una base de datos mediante TableAdapter

  • Incluya el método Update de TableAdapter en un bloque try/catch. En el ejemplo siguiente se muestra cómo actualizar el contenido de la tabla Customers en NorthwindDataSet desde un bloque try/catch.

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }