Procedura: aggiornare righe nel database

È possibile aggiornare le righe in un database modificando i valori del membro degli oggetti associati alla raccolta Table<TEntity> di LINQ to SQL e poi inviando le modifiche al database. LINQ to SQL converte le modifiche nei comandi SQL UPDATE appropriati.

Nota

È possibile eseguire l'override dei metodi predefiniti di LINQ to SQL per le operazioni di database Insert, Update e Delete. Per ulteriori informazioni, vedere Personalizzazione di operazioni di inserimento, aggiornamento ed eliminazione.

Gli sviluppatori che usano Visual Studio possono usare Object Relational Designer per sviluppare stored procedure per lo stesso scopo.

Per l'esecuzione dei passaggi seguenti si presuppone l'uso di un oggetto DataContext valido per la connessione al database Northwind. Per altre informazioni, vedere Procedura: Connettersi ai dati in un database.

Per aggiornare una riga nel database

  1. Eseguire una query sul database per la riga da aggiornare.

  2. Apportare le modifiche desiderate ai valori del membro nell'oggetto LINQ to SQL risultante.

  3. Inviare le modifiche al database.

Esempio

Nell'esempio di codice seguente viene eseguita una query sul database per l'ordine N. 11000, quindi vengono modificati i valori di ShipName e ShipVia nell'oggetto Order risultante. Infine le modifiche a questi valori del membro vengono inviate al database come modifiche nelle colonne ShipName e 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

Vedi anche