Procedura: aggiornare un'origine dati con i dati inviati da un controllo host
È possibile associare un controllo host a un'origine dati e aggiornare quest'ultima in base alle modifiche apportate ai dati nel controllo.Questo processo prevede due passaggi principali:
Aggiornare l'origine dati in memoria con i dati modificati nel controllo.In genere, l'origine dati in memoria è costituita da un oggetto DataSet, un oggetto DataTable o un altro oggetto dati.
Aggiornare il database con i dati modificati nell'origine dati in memoria.Ciò è possibile solo se l'origine dati è connessa a un database back-end, ad esempio un database SQL Server o Microsoft Office Access.
Per ulteriori informazioni sui controlli host e sull'associazione dati, vedere Cenni preliminari sugli elementi e sui controlli host e Associazione di dati ai controlli nelle soluzioni Office.
Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Excel 2013, Excel 2010, Word 2013 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
Aggiornamento dell'origine dati in memoria
Per impostazione predefinita, i controlli host che consentono l'associazione dati semplice (ad esempio i controlli del contenuto in un documento di Word o un controllo di intervallo denominato in un foglio di lavoro di Excel) non consentono di salvare le modifiche dei dati nell'origine dati in memoria.In altre parole, quando un utente finale modifica un valore in un controllo host e successivamente si sposta dal controllo, il nuovo valore del controllo non viene salvato nell'origine dati.
Per salvare i dati nell'origine dati, è possibile scrivere codice che consenta di aggiornare l'origine dati in risposta a un evento specifico in fase di esecuzione oppure è possibile configurare il controllo in modo che l'origine dati venga aggiornata automaticamente quando si modifica il valore nel controllo.
Non è necessario salvare le modifiche apportate a ListObject nell'origine dati in memoria.Quando si associa un controllo ListObject ai dati, tale controllo ListObject consente di salvare automaticamente le modifiche nell'origine dati in memoria senza che sia richiesto codice aggiuntivo.
Per aggiornare l'origine dati in memoria in fase di esecuzione
Chiamare il metodo WriteValue dell'oggetto Binding che associa il controllo all'origine dati.
Nell'esempio seguente le modifiche apportate a un controllo NamedRange in un foglio di lavoro di Excel vengono salvate nell'origine dati.In questo esempio si presume che si disponga già di un controllo NamedRange denominato namedRange1 la cui proprietà Value2 è associata a un campo in un'origine dati.
Me.NamedRange1.DataBindings("Value2").WriteValue()
this.namedRange1.DataBindings["Value2"].WriteValue();
Aggiornamento automatico dell'origine dati in memoria
È possibile inoltre configurare un controllo in modo che l'origine dati in memoria venga aggiornata automaticamente.In un progetto a livello di documento, questa operazione può essere eseguita tramite codice o tramite la finestra di progettazione.In un progetto a livello di applicazione, è necessario utilizzare il codice.
Per impostare un controllo in modo che l'origine dati in memoria venga aggiornata automaticamente tramite codice
Utilizzare la modalità System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged dell'oggetto Binding che associa il controllo all'origine dati.Esistono due opzioni per l'aggiornamento dell'origine dati:
Per aggiornare l'origine dati quando il controllo viene convalidato, impostare questa proprietà su System.Windows.Forms.DataSourceUpdateMode.OnValidation.
Per aggiornare l'origine dati quando si modifica il valore della proprietà del controllo associata ai dati, impostare questa proprietà su System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged.
[!NOTA]
L'opzione System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged non si applica ai controlli host di Word, perché in Word non vengono fornite notifiche di modifica del documento o del controllo.Tuttavia, è possibile utilizzarla per i controlli Windows Form nei documenti di Word.
Nell'esempio seguente viene configurato un controllo NamedRange in modo che l'origine dati venga aggiornata automaticamente quando si modifica il valore del controllo.In questo esempio si presume che si disponga già di un controllo NamedRange denominato namedRange1 la cui proprietà Value2 è associata a un campo in un'origine dati.
Me.NamedRange1.DataBindings("Value2").DataSourceUpdateMode = _ DataSourceUpdateMode.OnPropertyChanged
this.namedRange1.DataBindings["Value2"].DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
Per impostare un controllo in modo che l'origine dati in memoria venga aggiornata automaticamente tramite la finestra di progettazione
In Visual Studio, aprire il documento di Word o la cartella di lavoro di Excel nella finestra di progettazione.
Scegliere il controllo desiderato per l'aggiornamento automatico dell'origine dati.
Nella finestra Proprietà espandere la proprietà (DataBindings).
Scegliere il pulsante con i puntini di sospensione () accanto alla proprietà (Avanzate).
Nella finestra di dialogo Formattazione e associazione avanzata, fare clic sull'elenco a discesa Modalità aggiornamento origine dati e selezionare uno dei valori seguenti:
Per aggiornare l'origine dati quando si convalida il controllo, selezionare OnValidation.
Per aggiornare l'origine dati quando si modifica il valore della proprietà del controllo associata ai dati, selezionare OnPropertyChanged.
[!NOTA]
L'opzione OnPropertyChanged non si applica ai controlli host di Word, perché in Word non vengono fornite notifiche di modifica del documento o del controllo.Tuttavia, è possibile utilizzarla per i controlli Windows Form nei documenti di Word.
Chiudere la finestra di dialogo Formattazione e associazione avanzata.
Aggiornamento del database
Se l'origine dati in memoria è associata a un database, è necessario aggiornare il database in base alle modifiche apportate all'origine dati.Per ulteriori informazioni sull'aggiornamento di un database, vedere Salvataggio dei dati nei dataset e Procedura: aggiornare i dati mediante un TableAdapter.
Per aggiornare il database
Chiamare il metodo EndEdit di BindingSource per il controllo.
BindingSource viene generato automaticamente quando si aggiunge in fase di progettazione un controllo con associazione a dati a un documento o a una cartella di lavoro.BindingSource connette il controllo al dataset tipizzato nel progetto.Per ulteriori informazioni, vedere Cenni preliminari sul componente BindingSource.
Nell'esempio di codice seguente si presuppone che il progetto contenga un oggetto BindingSource denominato customersBindingSource.
Me.CustomersBindingSource.EndEdit()
this.customersBindingSource.EndEdit();
Chiamare il metodo Update dell'oggetto TableAdapter generato nel progetto.
TableAdapter viene generato automaticamente quando si aggiunge in fase di progettazione un controllo con associazione a dati a un documento o a una cartella di lavoro.TableAdapter connette il dataset tipizzato nel progetto al database.Per ulteriori informazioni, vedere Cenni preliminari sugli oggetti TableAdapter.
Nell'esempio di codice seguente si presuppone la disponibilità di una connessione alla tabella Customers nel database Northwind e la presenza, all'interno del progetto, di un oggetto TableAdapter denominato customersTableAdapter e di un dataset tipizzato denominato northwindDataSet.
Me.CustomersTableAdapter.Update(Me.NorthwindDataSet.Customers)
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
Vedere anche
Attività
Procedura: aggiornare i dati mediante un TableAdapter
Procedura: scorrere i record di un database in un foglio di lavoro
Procedura: popolare fogli di lavoro con dati da un database
Procedura: compilare documenti con dati da oggetti
Procedura: popolare documenti con dati da un database
Procedura: compilare documenti con dati forniti da servizi
Concetti
Salvataggio dei dati nei dataset