Udostępnij za pośrednictwem


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 Insertoperacji , Updatei 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

  1. Wykonaj zapytanie dotyczące bazy danych, aby wiersz został zaktualizowany.

  2. Wprowadź żądane zmiany w wartościach składowych w wynikowym obiekcie LINQ to SQL.

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

Zobacz też