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
Consulte en la base de datos la fila que se va a actualizar.
Realiza 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.
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