Procedura: salvare dati da un oggetto in un database
È 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 risolvere le differenze tra 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 negli oggetti
Procedura dettagliata: connessione ai dati negli oggetti (Windows Form)
Procedura: accedere direttamente al database mediante un oggetto TableAdapter
Concetti
Associazione di oggetti in Visual Studio
Associazione di controlli Windows Form ai dati in Visual Studio
Associazione di controlli ai dati in Visual Studio
Altre risorse
Connessione ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione