Comparteix a través de


Guardar datos de un objeto en una base de datos 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. Las tecnologías 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.

Puede guardar datos de objetos en una base de datos pasando los valores del objeto a uno de los métodos DBDirect de TableAdapter (por ejemplo, TableAdapter.Insert). Para más información, consulte TableAdapter.

Para guardar datos de una colección de objetos, recorra en bucle la colección de objetos (por ejemplo, un bucle for-next) y envíe los valores de cada objeto a la base de datos mediante uno de los métodos DBDirect de TableAdapter.

De forma predeterminada, los métodos DBDirect se crean en un TableAdapter que se puede ejecutar directamente en la base de datos. Estos métodos se pueden llamar directamente y no requieren objetos DataSet o DataTable para conciliar los cambios con el fin de enviar actualizaciones a una base de datos.

Nota

Cuando configure un método de TableAdapter, la consulta principal debe proporcionar suficiente información para los métodos DBDirect que se van a crear. Por ejemplo, si un método de TableAdapter está configurado para consultar datos de una tabla que no tiene definida una columna de clave principal, no generará métodos DBDirect.

Método de TableAdapter DBDirect Descripción
TableAdapter.Insert Agrega nuevos registros a una base de datos y le permite pasar valores de columna individuales como parámetros de método.
TableAdapter.Update Actualiza los registros existentes en una base de datos. El método Update utiliza los valores de columna originales y nuevos como parámetros. Los valores originales se usan para localizar el registro original, mientras que los nuevos se usan para actualizar ese registro.

El método TableAdapter.Update también se usa para conciliar los cambios de un conjunto de datos de nuevo en la base de datos, para lo que se toman DataSet, DataTable, DataRow, o una matriz de DataRow como parámetros.
TableAdapter.Delete Elimina los registros existentes de la base de datos en función de los valores de columna originales usados como parámetros del método.

Para guardar nuevos registros desde un objeto en una base de datos

  • Cree los registros pasando los valores al método TableAdapter.Insert.

    En el ejemplo siguiente se crea un nuevo registro de cliente en la tabla Customers pasando los valores del objeto currentCustomer al método TableAdapter.Insert.

    private void AddNewCustomers(Customer currentCustomer)
    {
        customersTableAdapter.Insert( 
            currentCustomer.CustomerID, 
            currentCustomer.CompanyName, 
            currentCustomer.ContactName, 
            currentCustomer.ContactTitle, 
            currentCustomer.Address, 
            currentCustomer.City, 
            currentCustomer.Region, 
            currentCustomer.PostalCode, 
            currentCustomer.Country, 
            currentCustomer.Phone, 
            currentCustomer.Fax);
    }
    

Para actualizar los registros existentes de un objeto en una base de datos

  • Para modificar los registros, llame al método TableAdapter.Update, pase los nuevos valores para actualizar el registro y pase los valores originales para buscar el registro.

    Nota

    El objeto debe mantener los valores originales para pasarlos al método Update. En este ejemplo se usan propiedades con un prefijo orig para almacenar los valores originales.

    En el ejemplo siguiente se actualiza un registro existente de la tabla Customers pasando los valores nuevos y originales del objeto Customer al método TableAdapter.Update.

    private void UpdateCustomer(Customer cust)
    {
        customersTableAdapter.Update(
            cust.CustomerID,
            cust.CompanyName,
            cust.ContactName,
            cust.ContactTitle,
            cust.Address,
            cust.City,
            cust.Region,
            cust.PostalCode,
            cust.Country,
            cust.Phone,
            cust.Fax,
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

Para eliminar los registros existentes de una base de datos

  • Para eliminar los registros, llame al método TableAdapter.Delete y pase los valores originales para buscar el registro.

    Nota

    El objeto debe mantener los valores originales para pasarlos al método Delete. En este ejemplo se usan propiedades con un prefijo orig para almacenar los valores originales.

    En el ejemplo siguiente se elimina un registro de la tabla Customers pasando los valores originales del objeto Customer al método TableAdapter.Delete.

    private void DeleteCustomer(Customer cust)
    {
        customersTableAdapter.Delete(
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

Seguridad de .NET

Debe tener permiso para realizar la operación INSERT, UPDATE o DELETE seleccionada en la tabla de la base de datos.