Instrukcje: Aktualizowanie wierszy w bazie danych
Wiersze w bazie danych można zaktualizować, modyfikując wartości składowe obiektów skojarzonych z kolekcją LINQ to SQL Table<TEntity> , a następnie przesyłając zmiany do bazy danych. LINQ to SQL tłumaczy zmiany na odpowiednie polecenia SQL UPDATE
.
Uwaga
Można zastąpić domyślne metody LINQ to SQL dla Insert
operacji , Update
i Delete
bazy danych. Aby uzyskać więcej informacji, zobacz Dostosowywanie operacji wstawiania, aktualizowania i usuwania.
Deweloperzy korzystający z programu Visual Studio mogą używać Projektant obiektowych do tworzenia procedur składowanych w tym samym celu.
W poniższych krokach przyjęto założenie, że prawidłowe DataContext połączenie z bazą danych Northwind. Aby uzyskać więcej informacji, zobacz Instrukcje: Połączenie do bazy danych.
Aby zaktualizować wiersz w bazie danych
Wykonaj zapytanie dotyczące bazy danych, aby wiersz został zaktualizowany.
Wprowadź żądane zmiany w wartościach składowych w wynikowym obiekcie LINQ to SQL.
Prześlij zmiany do bazy danych.
Przykład
Poniższy przykład wysyła zapytanie do bazy danych o kolejność 11000, a następnie zmienia wartości ShipName
i ShipVia
w wynikowym Order
obiekcie. Na koniec zmiany tych wartości składowych są przesyłane do bazy danych jako zmiany w kolumnach ShipName
i 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