Compartir vía


Procedimiento para actualizar filas en la base de datos

Puedes actualizar las filas de una base de datos modificando los valores de miembro de los objetos asociados a la colección LINQ to SQL de Table<TEntity> y enviando después los cambios a la base de datos. LINQ to SQL traduce los cambios en los comandos SQL UPDATE adecuados.

Nota

Puede invalidar los métodos predeterminados de LINQ to SQL para las operaciones de base de datos Insert,Update y Delete. Para obtener más información, consulte Personalizar operaciones de actualización, inserción y eliminación.

Los desarrolladores que usan Visual Studio pueden usar Object Relational Designer para desarrollar procedimientos almacenados con este objetivo.

En los pasos siguientes se asume que un objeto DataContext válido le conecta a la base de datos Northwind. Para obtener más información, consulta Cómo conectarse a una base de datos.

Para actualizar una fila de la base de datos

  1. Consulte en la base de datos la fila que se va a actualizar.

  2. Realiza los cambios deseados en los valores de miembro en el objeto LINQ to SQL resultante.

  3. Envíe los cambios a la base de datos.

Ejemplo

En el ejemplo siguiente se consulta en la base de datos el pedido #11000 y, a continuación, se cambian los valores de ShipName y ShipVia en el objeto Order resultante. Finalmente, los cambios en estos valores de miembro se envían a la base de datos como cambios en las columnas ShipName y ShipVia.

// Query the database for the row to be updated.
var query =
    from ord in db.Orders
    where ord.OrderID == 11000
    select ord;

// Execute the query, and change the column values
// you want to change.
foreach (Order ord in query)
{
    ord.ShipName = "Mariner";
    ord.ShipVia = 2;
    // Insert any additional changes to column values.
}

// Submit the changes to the database.
try
{
    db.SubmitChanges();
}
catch (Exception e)
{
    Console.WriteLine(e);
    // Provide for exceptions.
}
' Query the database for the row to be updated.
Dim ordQuery = _
    From ord In db.Orders _
    Where ord.OrderID = 11000 _
    Select ord

' Execute the query, and change the column values
' you want to change.
For Each ord As Order In ordQuery
    ord.ShipName = "Mariner"
    ord.ShipVia = 2
    ' Insert any additional changes to column values.
Next

' Submit the changes to the database.
Try
    db.SubmitChanges()
Catch e As Exception
    Console.WriteLine(e)
    ' Make some adjustments.
    ' ...
    ' Try again
    db.SubmitChanges()
End Try

Consulte también