Salvare i dati da un oggetto a un database 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. 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.

È possibile salvare i dati in oggetti in un database passando i valori dall'oggetto a uno dei metodi DBDirect di TableAdapter, ad esempio TableAdapter.Insert. Per altre informazioni, vedere TableAdapter.

Per salvare i dati da una raccolta di oggetti, scorrere la raccolta di oggetti , ad esempio un ciclo for-next, e inviare i valori per ogni oggetto al database utilizzando uno dei metodi di DBDirect TableAdapter.

Per impostazione predefinita, DBDirect i metodi vengono creati in un oggetto TableAdapter che può essere eseguito direttamente nel database. Questi metodi possono essere chiamati direttamente e non richiedono DataSet o DataTable oggetti per riconciliare le modifiche per inviare aggiornamenti a un database.

Nota

Quando si configura un oggetto TableAdapter, la query principale deve fornire informazioni sufficienti per la creazione dei DBDirect metodi. Ad esempio, se un oggetto TableAdapter è configurato per eseguire query sui dati da una tabella in cui non è definita una colonna chiave primaria, non genera DBDirect metodi.

Metodo DBDirect di TableAdapter Descrizione
TableAdapter.Insert Aggiunge nuovi record a un database e consente di passare singoli valori di colonna come parametri del metodo.
TableAdapter.Update Aggiornamenti record esistenti in un database. Il Update metodo accetta valori originali e nuovi di colonna come parametri del metodo. I valori originali vengono usati per individuare il record originale e i nuovi valori vengono usati per aggiornare il record.

Il TableAdapter.Update metodo viene usato anche per riconciliare le modifiche in un set di dati nel database accettando una DataSetmatrice , DataTable, DataRowo una matrice di DataRows come parametri del metodo.
TableAdapter.Delete Elimina i record esistenti dal database in base ai valori di colonna originali passati come parametri del metodo.

Per salvare nuovi record da un oggetto a un database

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

    Nell'esempio seguente viene creato un nuovo record cliente nella Customers tabella passando i valori nell'oggetto currentCustomer al TableAdapter.Insert metodo .

    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 TableAdapter.Update metodo , passando i nuovi valori per aggiornare il record e passando i valori originali per individuare il record.

    Nota

    L'oggetto deve mantenere i valori originali per passarli al Update metodo . In questo esempio vengono utilizzate proprietà con un orig prefisso per archiviare i valori originali.

    Nell'esempio seguente viene aggiornato un record esistente nella Customers tabella passando i valori nuovi e originali nell'oggetto Customer al TableAdapter.Update metodo .

    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 record esistenti da un database

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

    Nota

    L'oggetto deve mantenere i valori originali per passarli al Delete metodo . In questo esempio vengono utilizzate proprietà con un orig prefisso per archiviare i valori originali.

    Nell'esempio seguente viene eliminato un record dalla Customers tabella passando i valori originali nell'oggetto Customer al TableAdapter.Delete metodo .

    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);
    }
    

Protezione .NET

È necessario disporre dell'autorizzazione per eseguire l'oggetto , UPDATEo DELETE selezionato INSERTnella tabella nel database.