Share via


Procedura: salvare dati da un oggetto in un database

Aggiornamento: novembre 2007

È possibile salvare i dati dagli oggetti in un database passando i valori dall'oggetto in uso a uno dei metodi DBDirect del TableAdapter (ad esempio, TableAdapter.Insert). Per ulteriori informazioni, vedere Cenni preliminari sugli oggetti TableAdapter.

Per salvare i dati di un insieme di oggetti, scorrere l'insieme di oggetti (ad esempio, utilizzando un ciclo For-Next) e inviare i valori per ciascun oggetto al database utilizzando uno dei metodi DBDirect del TableAdapter.

Per impostazione predefinita, i metodi DBDirect vengono creati in un TableAdapter che è possibile eseguire direttamente nel database. Tali metodi possono essere chiamati direttamente e non richiedono oggetti DataSet o DataTable per riconciliare le modifiche al fine di inviare gli aggiornamenti a un database.

Nota:

Quando si configura un TableAdapter, la query principale dovrà fornire informazioni sufficienti alla creazione dei metodi DBDirect. Se, ad esempio, un TableAdapter è configurato per l'esecuzione di query di dati da una tabella in cui non è presente una colonna di chiave primaria definita, i metodi DBDirect non saranno generati.

Metodo DBDirect di TableAdapter

Descrizione

TableAdapter.Insert

Aggiunge nuovi record a un database e consente di passare singoli valori di colonna come parametri di metodo.

TableAdapter.Update

Aggiorna i record esistenti in un database Il metodo Update accetta valori di colonna originali e quelli nuovi come parametri di metodo. I valori originali sono utilizzati per individuare il record originale, mentre i valori nuovi sono utilizzati per aggiornarlo.

Il metodo TableAdapter.Update è anche utilizzato per riconciliare le modifiche apportate a un dataset e il database utilizzando un oggetto DataSet, DataTable, DataRow, oppure una matrice di oggetti DataRow come parametri di metodo.

TableAdapter.Delete

Elimina i record esistenti dal database in base ai valori di colonna originali passati come parametri di metodo.

Per salvare i nuovi record da un oggetto a un database

  • Creare i record passando i valori al metodo TableAdapter.Insert.

    Nell'esempio riportato di seguito nella tabella Customers viene creato un nuovo record cliente mediante il passaggio dei valori dell'oggetto currentCustomer al metodo TableAdapter.Insert.

    Private Sub AddNewCustomer(ByVal currentCustomer As Customer)
    
        CustomersTableAdapter.Insert( _
            currentCustomer.CustomerID, _
            currentCustomer.CompanyName, _
            currentCustomer.ContactName, _
            currentCustomer.ContactTitle, _
            currentCustomer.Address, _
            currentCustomer.City, _
            currentCustomer.Region, _
            currentCustomer.PostalCode, _
            currentCustomer.Country, _
            currentCustomer.Phone, _
            currentCustomer.Fax)
    End Sub
    
    private void AddNewCustomers(Customer currentCustomer)
    {
        customersTableAdapter.Insert( 
            currentCustomer.CustomerID, 
            currentCustomer.CompanyName, 
            currentCustomer.ContactName, 
            currentCustomer.ContactTitle, 
            currentCustomer.Address, 
            currentCustomer.City, 
            currentCustomer.Region, 
            currentCustomer.PostalCode, 
            currentCustomer.Country, 
            currentCustomer.Phone, 
            currentCustomer.Fax);
    }
    

Per aggiornare i record esistenti da un oggetto a un database

  • Modificare i record chiamando il metodo TableAdapter.Update e passando i nuovi valori per aggiornare il record e passando i valori originali per individuare il record.

    Nota:

    Per passare i valori originali al metodo Update, sarà necessario mantenere tali valori nell'oggetto in uso. In questo esempio vengono utilizzate le proprietà con un prefisso orig per memorizzare i valori originali.

    Nell'esempio riportato di seguito viene aggiornato un record esistente nella tabella Customers mediante il passaggio dei valori nuovi e di quelli originali dell'oggetto Customer al metodo TableAdapter.Update.

    Private Sub UpdateCustomer(ByVal cust As Customer)
    
            CustomersTableAdapter.Update( _
            cust.CustomerID, _
            cust.CompanyName, _
            cust.ContactName, _
            cust.ContactTitle, _
            cust.Address, _
            cust.City, _
            cust.Region, _
            cust.PostalCode, _
            cust.Country, _
            cust.Phone, _
            cust.Fax, _
            cust.origCustomerID, _
            cust.origCompanyName, _
            cust.origContactName, _
            cust.origContactTitle, _
            cust.origAddress, _
            cust.origCity, _
            cust.origRegion, _
            cust.origPostalCode, _
            cust.origCountry, _
            cust.origPhone, _
            cust.origFax)
    End Sub
    
    private void UpdateCustomer(Customer cust)
    {
        customersTableAdapter.Update(
            cust.CustomerID,
            cust.CompanyName,
            cust.ContactName,
            cust.ContactTitle,
            cust.Address,
            cust.City,
            cust.Region,
            cust.PostalCode,
            cust.Country,
            cust.Phone,
            cust.Fax,
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

Per eliminare i record esistenti da un database

  • Eliminare i record chiamando il metodo TableAdapter.Delete e passando i valori originali per individuare il record.

    Nota:

    Per passare i valori originali al metodo Delete, sarà necessario mantenere tali valori nell'oggetto in uso. In questo esempio vengono utilizzate le proprietà con un prefisso orig per memorizzare i valori originali.

    Nell'esempio riportato di seguito viene eliminato un record dalla tabella Customers mediante il passaggio dei valori originali dell'oggetto Customer al metodo TableAdapter.Delete.

    Private Sub DeleteCustomer(ByVal cust As Customer)
    
        CustomersTableAdapter.Delete( _
            cust.origCustomerID, _
            cust.origCompanyName, _
            cust.origContactName, _
            cust.origContactTitle, _
            cust.origAddress, _
            cust.origCity, _
            cust.origRegion, _
            cust.origPostalCode, _
            cust.origCountry, _
            cust.origPhone, _
            cust.origFax)
    End Sub
    
    private void DeleteCustomer(Customer cust)
    {
        customersTableAdapter.Delete(
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

Sicurezza

Per eseguire le istruzioni INSERT, UPDATE o DELETE selezionate sulla tabella del database è necessario disporre dell'autorizzazione appropriata.

Vedere anche

Attività

Procedura: connettersi ai dati di un oggetto

Procedura dettagliata: connessione ai dati di oggetti

Procedura: accedere direttamente al database mediante un oggetto TableAdapter

Concetti

Associazione di oggetti in Visual Studio

Cenni preliminari sulla visualizzazione dei dati

Altre risorse

Connessione ai dati in Visual Studio

Preparazione dell'applicazione al ricevimento di dati

Recupero di dati nell'applicazione

Visualizzazione di dati su form nelle applicazioni Windows

Modifica di dati nell'applicazione

Convalida dei dati

Salvataggio di dati