Condividi tramite


Aggiornare i dati usando un oggetto TableAdapter nelle applicazioni .NET Framework

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Le tecnologie sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

Dopo aver modificato e convalidato i dati nel set di dati, è possibile inviare nuovamente i dati aggiornati a un database chiamando il Update metodo di un TableAdapter. Il Update metodo aggiorna una singola tabella dati ed esegue il comando corretto (INSERT, UPDATEo DELETE) in base a RowState ogni riga di dati nella tabella. Quando un set di dati include tabelle correlate, Visual Studio genera una classe TableAdapterManager usata per eseguire gli aggiornamenti. La classe TableAdapterManager garantisce che gli aggiornamenti vengano eseguiti nell'ordine corretto in base ai vincoli di chiave esterna definiti nel database. Quando si usano controlli associati a dati, l'architettura di associazione dati crea una variabile membro della classe TableAdapterManager denominata tableAdapterManager.

Nota

Quando si tenta di aggiornare un'origine dati con il contenuto di un set di dati, è possibile ottenere errori. Per evitare errori, è consigliabile inserire il codice che chiama il metodo dell'adattatore all'interno di Update un try/catch blocco.

La procedura esatta per l'aggiornamento di un'origine dati può variare a seconda delle esigenze aziendali, ma include i passaggi seguenti:

  1. Chiamare il metodo dell'adattatore Update in un try/catch blocco.

  2. Se viene rilevata un'eccezione, individuare la riga di dati che ha causato l'errore.

  3. Riconciliare il problema nella riga di dati (a livello di codice, se possibile o presentando la riga non valida all'utente per la modifica) e quindi riprovare l'aggiornamento (HasErrors, GetErrors).

Salvare i dati in un database

Chiamare il Update metodo di un oggetto TableAdapter. Passare il nome della tabella dati che contiene i valori da scrivere nel database.

Per aggiornare un database utilizzando un tableadapter

  • Racchiudere il metodo TableAdapter Update in un try/catch blocco. Nell'esempio seguente viene illustrato come aggiornare il contenuto della Customers tabella in NorthwindDataSet da un try/catch blocco.

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }