Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Se recomienda usar Visual Studio 2017

Cómo: Actualizar los registros de una base de datos

 

Publicada: julio de 2016

Puede utilizar el método TableAdapter.Update para actualizar (editar) los registros de una base de datos. El método TableAdapter.Update proporciona varias sobrecargas que realizan operaciones diferentes que dependen de los parámetros pasados. Es importante entender los resultados que se obtienen al llamar a estas firmas de método diferentes.

System_CAPS_noteNota

Si su aplicación no utiliza TableAdapters, puede utilizar objetos de comando para actualizar los registros de su base de datos (por ejemplo, ExecuteNonQuery). Para obtener más información sobre cómo actualizar datos con objetos de comando, vea "Actualizar registros mediante objetos de comando" más adelante.

La tabla siguiente describe el comportamiento de los distintos métodos TableAdapter.Update:

Método

Descripción

TableAdapter.Update(DataTable)

Intenta guardar todos los cambios en DataTable en la base de datos. (Incluye quitar filas eliminadas de la tabla, agregar filas insertadas en la tabla y actualizar filas que han cambiado en la tabla.)

TableAdapter.Update(DataSet)

Aunque el parámetro toma un conjunto de datos, el TableAdapter intenta guardar todos los cambios en el objeto DataTable asociado del TableAdapter en la base de datos. (Incluye quitar filas eliminadas de la tabla, agregar filas insertadas en la tabla y actualizar filas que han cambiado en la tabla.)

System_CAPS_noteNota

El objeto DataTable asociado de un TableAdapter es el objeto DataTable creado durante la configuración original del TableAdapter.

TableAdapter.Update(DataRow)

Intenta guardar todos los cambios en el objeto DataRow indicado en la base de datos.

TableAdapter.Update(DataRows())

Intenta guardar los cambios en cualquier fila de la matriz de DataRows en la base de datos.

TableAdapter.Update("new column values", "original column values")

Intenta guardar los cambios en una fila única que se identifica por los valores de columna originales.

Normalmente utiliza el método TableAdapter.Update que toma DataSet, DataTable o DataRow cuando su aplicación utiliza exclusivamente conjuntos de datos para almacenar los datos.

Normalmente utiliza el método TableAdapter.Update que toma valores de columna cuando su aplicación utiliza objetos para almacenar los datos.

Si el TableAdapter no dispone de un método Update que toma valores de columna, significa que el TableAdapter está configurado para utilizar procedimientos almacenados o que su propiedad GenerateDBDirectMethods está establecida en false. Pruebe a establecer la propiedad GenerateDBDirectMethods de TableAdapter en true desde el Diseñador de Dataset y guarde el conjunto de datos para volver a generar el TableAdapter. Si aun así el TableAdapter no dispone de un método Update que toma valores de columna, probablemente la tabla no proporciona información suficiente para distinguir entre filas individuales (por ejemplo, la tabla no dispone de clave principal).

Los TableAdapters proporcionan maneras diferentes de actualizar los registros de una base de datos en función de los requisitos de su aplicación.

Si la aplicación usa conjuntos de datos para almacenar los datos, puede actualizar simplemente los recursos en el objeto DataTable que desee y llamar después al método TableAdapter.Update y pasar los objetos DataSet, DataTable, DataRow o una matriz de DataRow. En la tabla anterior se describen los diferentes métodos Update.

Para actualizar registros de una base de datos con el método TableAdapter.Update que toma DataSet, DataTable, DataRow o DataRows()

  1. Edite los registros en el objeto DataTable deseado editando directamente el objeto DataRow en DataTable. Para obtener más información, vea Cómo: Editar filas en un objeto DataTable.

  2. Después de que las filas se editen en DataTable, llame al método TableAdapter.Update. Puede controlar la cantidad de datos que se actualizan pasando un objeto DataSet completo, un objeto DataTable, una matriz de DataRows o un único objeto DataRow.

    En el código siguiente se muestra cómo editar un registro en un objeto DataTable y cómo llamar al método TableAdapter.Update para guardar los cambios en la base de datos. (En este ejemplo se utiliza la tabla Region de la base de datos Northwind.)

    // Locate the row you want to update.
    NorthwindDataSet.RegionRow regionRow;
    regionRow = northwindDataSet.Region.FindByRegionID(1);
    
    // Assign the new value to the desired column.
    regionRow.RegionDescription = "East";
    
    // Save the updated row to the database.
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Si la aplicación utiliza objetos para almacenar los datos, puede utilizar los métodos DBDirect del TableAdapter para enviar datos de los objetos directamente a la base de datos. Estos métodos permiten pasar valores individuales de cada columna como parámetros de método. Al llamar a este método, se actualiza un registro existente en la base de datos con los valores de columna pasados en el método.

El procedimiento siguiente utiliza la tabla Region de Northwind como un ejemplo.

Para actualizar los registros de una base de datos utilizando el método TableAdapter.Update que toma valores de columna

  • Llame al método Update del TableAdapter, pasando los valores nuevos y originales de cada columna como parámetros.

    System_CAPS_noteNota

    Si no tiene una instancia disponible, cree una instancia de TableAdapter que desee utilizar.

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Update(1, "East", 1, "Eastern");
    

El ejemplo siguiente actualiza directamente los registros existentes en una base de datos utilizando objetos de comando. Para obtener más información sobre el uso de objetos de comando para ejecutar comandos y procedimientos almacenados, vea Buscar datos en la aplicación.

El procedimiento siguiente utiliza la tabla Region de Northwind como un ejemplo.

Para actualizar registros existentes en una base de datos utilizando objetos de comando

  • Cree un nuevo objeto de comando; establezca sus propiedades Connection, CommandType y CommandText y, a continuación, abra una conexión y ejecute el comando.

    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "UPDATE Region SET [RegionDescription] = @RegionDescription WHERE [RegionID] = @RegionID";
    cmd.Parameters.AddWithValue("@RegionDescription", "East");
    cmd.Parameters.AddWithValue("@RegionID", "1");
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    

Seguridad de .NET Framework

Debe tener acceso a la base de datos con la que intenta conectarse, así como permiso para actualizar registros en la tabla deseada.

Mostrar: