Freigeben über


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

  1. Rufen Sie die zu aktualisierende Zeile aus der Datenbank ab.

  2. Nehmen Sie die gewünschten Änderungen an Memberwerten im resultierenden LINQ to SQL-Objekt vor.

  3. Ü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

Siehe auch