Vorgehensweise: Aktualisieren von Zeilen in der Datenbank
Sie können die Zeilen in einer Datenbank aktualisieren, indem Sie die Memberwerte der Objekte verändern, die der LINQ to SQL Table<TEntity>-Auflistung zugewiesen sind. Anschließend übergeben Sie die Änderungen an die Datenbank. LINQ to SQL übersetzt Ihre Änderungen in die entsprechenden SQL UPDATE
-Befehle.
Hinweis
Sie können LINQ to SQL-Standardmethoden für die Datenbankoperationen Insert
, Update
und Delete
überschreiben. Weitere Informationen finden Sie unter Anpassen von Insert-, Update- und Delete-Vorgängen.
Entwickler, die Visual Studio verwenden, können den objektrelationalen Designer verwenden, um gespeicherte Prozeduren für denselben Zweck zu entwickeln.
In den folgenden Schritten wird davon ausgegangen, dass Sie ein gültiger DataContext mit der Datenbank Northwind verbindet. Weitere Informationen dazu finden Sie unter Vorgehensweise: Mit einer Datenbank verbinden.
So aktualisieren Sie eine Zeile in der Datenbank
Rufen Sie die zu aktualisierende Zeile aus der Datenbank ab.
Nehmen Sie die gewünschten Änderungen an Memberwerten im resultierenden LINQ to SQL-Objekt vor.
Übergeben Sie die Änderungen an die Datenbank.
Beispiel
Im folgenden Beispiel wird die Bestellung Nr. 11000 aus der Datenbank abgerufen. Anschließend werden die Werte für ShipName
und ShipVia
im resultierenden Order
-Objekt geändert. Schließlich werden die Änderungen an diesen Memberwerten als Änderungen in der ShipName
-Spalte und der ShipVia
-Spalte an die Datenbank übergeben.
// 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