Cómo: Actualizar filas en la base de datos (LINQ to SQL)
Actualización: November 2007
Puede actualizar las filas de una base de datos modificando los valores de miembro de los objetos asociados a la colección Table<TEntity> de LINQ to SQL y enviando después los cambios a la base de datos. LINQ to SQL convierte los cambios en los comandos UPDATE adecuados de SQL.
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 inserción, actualización y eliminación (LINQ to SQL). Los desarrolladores de Visual Studio pueden usar el Diseñador relacional de objetos para desarrollar procedimientos almacenados con el mismo propósito. |
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, consulte Cómo: Conectarse a una base de datos (LINQ to SQL).
Para actualizar una fila de la base de datos
Consulte en la base de datos la fila que se va a actualizar.
Realice los cambios deseados en los valores de miembro en el objeto LINQ to SQL resultante.
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.
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
// 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.
}