Procedura dettagliata: associazione dati complessa in un progetto a livello di applicazione

È possibile associare dati ai controlli host e ai controlli Windows Form nei progetti a livello di applicazione.In questa procedura dettagliata viene illustrato come aggiungere controlli a un foglio di lavoro di Microsoft Office Excel e come associare in fase di esecuzione i controlli ai dati.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di applicazione per Excel 2013 ed Excel 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Aggiunta di un controllo ListObject a un foglio di lavoro in fase di esecuzione.

  • Creazione di un oggetto BindingSource che connette il controllo a un'istanza di un dataset.

[!NOTA]

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

-

Una versione di Visual Studio 2012 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.110\).md).

Creazione di un nuovo progetto

Il primo passaggio consiste nella creazione di un progetto per un componente aggiuntivo di Excel.

Per creare un nuovo progetto

  • Creare un progetto componente aggiuntivo per Excel denominato Popolamento di fogli di lavoro da un database, utilizzando Visual Basic o C#.

    Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

    Visual Studio apre il file ThisAddIn.vb o ThisAddIn.cs e aggiunge il progetto Popolamento di fogli di lavoro da un database a Esplora soluzioni.

Creazione di un'origine dati

Utilizzare la finestra Origini dati per aggiungere un DataSet tipizzato al progetto.

Per aggiungere un dataset tipizzato al progetto

  1. Se la finestra Origini dati non è visibile, vengono visualizzati da, sulla barra dei menu, scegliente Visualizza, Altre finestre, Origini dati.

  2. Scegliere Aggiungi nuova origine dati per avviare Configurazione guidata origine dati.

  3. Fare clic su Database, quindi scegliere Avanti.

  4. Se già si dispone di una connessione al database AdventureWorksLT, scegliere questa connessione e fare clic su Avanti.

    In caso contrario, fare clic su Nuova connessione e utilizzare la finestra di dialogo Aggiungi connessione per creare la nuova connessione.Per ulteriori informazioni, vedere Procedura: connettersi ai dati di un database.

  5. Scegliere Avanti nella pagina Salva stringa di connessione nel file di configurazione dell'applicazione.

  6. Nella pagina Seleziona oggetti di database, espandere Tabelle e selezionare Address (SalesLT).

  7. Fare clic su Fine.

    Il file AdventureWorksLTDataSet.xsd viene aggiunto a Esplora soluzioni.Tale file definisce gli elementi seguenti:

    • Un dataset tipizzato denominato AdventureWorksLTDataSet.Questo dataset rappresenta il contenuto della tabella Address (SalesLT) nel database AdventureWorksLT.

    • Un oggetto TableAdapter denominato AddressTableAdapter.È possibile utilizzare questo oggetto TableAdapter per leggere e scrivere dati in AdventureWorksLTDataSet.Per ulteriori informazioni, vedere Cenni preliminari sugli oggetti TableAdapter.

    Nei passaggi successivi della procedura dettagliata si utilizzeranno entrambi gli oggetti.

Creazione di controlli e associazione dei controlli ai dati

In questa procedura dettagliata, il controllo ListObject visualizza tutti i dati della tabella selezionata appena l'utente apre la cartella di lavoro.L'oggetto elenco utilizza un oggetto BindingSource per connettere il controllo al database.

Per ulteriori informazioni sull'associazione dei controlli ai dati, vedere Associazione di dati ai controlli nelle soluzioni Office.

Per aggiungere l'oggetto elenco, il dataset e il TableAdapter

  1. Nella classe ThisAddIn, dichiarare i controlli indicati di seguito per visualizzare e la tabella Address del dataset AdventureWorksLTDataSet.

    Private addressListObject As Microsoft.Office.Tools.Excel.ListObject
    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private addressTableAdapter As AdventureWorksLTDataSetTableAdapters.AddressTableAdapter
    Private addressBindingSource As System.Windows.Forms.BindingSource
    
    private Microsoft.Office.Tools.Excel.ListObject addressListObject;
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.AddressTableAdapter addressTableAdapter;
    private System.Windows.Forms.BindingSource addressBindingSource;
    
  2. Nel metodo ThisAddIn_Startup, aggiungere il codice seguente per inizializzare il dataset e inserirvi le informazioni contenute nel dataset AdventureWorksLTDataSet.

    Me.addressTableAdapter = New AdventureWorksLTDataSetTableAdapters.AddressTableAdapter()
    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.addressTableAdapter.Fill(Me.adventureWorksDataSet.Address)
    Me.addressBindingSource = New System.Windows.Forms.BindingSource()
    
    this.addressTableAdapter = new AdventureWorksLTDataSetTableAdapters.AddressTableAdapter();
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.addressTableAdapter.Fill(this.adventureWorksDataSet.Address);
    this.addressBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Aggiungere al metodo ThisAddIn_Startup il seguente codice.Viene generato un elemento host che estende il foglio di lavoro.Per ulteriori informazioni, vedere Estensione in fase di esecuzione di documenti di Word e di cartelle di lavoro di Excel in componenti aggiuntivi a livello di applicazione.

            Dim worksheet As Excel.Worksheet = DirectCast(Me.Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet)
    
            ' Create a workhseet host item.
            Dim extendedWorksheet As Worksheet = Globals.Factory.GetVstoObject(worksheet)
    
    
                Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1];
                // Create a workhseet host item.
                Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet);
    
    
    
  4. Creare un intervallo e aggiungere il controllo ListObject.

    Dim cell As Excel.Range = extendedWorksheet.Range("$A$1:$G$5", System.Type.Missing)
    Me.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1")
    
    Excel.Range cell = extendedWorksheet.Range["$A$1:$G$5"];
    this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");
    
  5. Associare l'oggetto elenco a AdventureWorksLTDataSet tramite BindingSource.Passare i nomi delle colonne che si desidera associare all'oggetto elenco.

    Me.addressBindingSource.DataSource = Me.adventureWorksDataSet.Address
    Me.addressListObject.AutoSetDataBoundColumnHeaders = True
    Me.addressListObject.SetDataBinding( _
        Me.addressBindingSource, "", "AddressID", "AddressLine1", _
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode")
    
    this.addressBindingSource.DataSource = this.adventureWorksDataSet.Address;
    this.addressListObject.AutoSetDataBoundColumnHeaders = true;
    this.addressListObject.SetDataBinding(
        this.addressBindingSource, "", "AddressID", "AddressLine1", 
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode");
    

Test del componente aggiuntivo

Quando si apre Excel, il controllo ListObject visualizza i dati della tabella Address del dataset AdventureWorksLTDataSet.

Per verificare il componente aggiuntivo

  • Premere F5.

    Nel foglio di lavoro viene creato un nuovo controllo ListObject denominato addressListObject.Contemporaneamente, al progetto vengono aggiunti un oggetto dataset denominato adventureWorksLTDataSet e un oggetto BindingSource denominato addressBindingSource.ListObject viene associato all'oggetto BindingSource, che a sua volta è associato all'oggetto dataset.

Vedere anche

Attività

Procedura: popolare fogli di lavoro con dati da un database

Procedura: popolare documenti con dati da un database

Procedura: compilare documenti con dati forniti da servizi

Procedura: compilare documenti con dati da oggetti

Procedura: scorrere i record di un database in un foglio di lavoro

Procedura: aggiornare un'origine dati con i dati inviati da un controllo host

Procedura dettagliata: associazione dati semplice in un progetto a livello di documento

Procedura dettagliata: associazione dati complessa in un progetto a livello di documento

Riferimenti

Cenni preliminari sul componente BindingSource

Concetti

Cenni preliminari sull'utilizzo di file di un database locale nelle soluzioni Office

Cenni preliminari sulle origini dati

Associazione di controlli Windows Form ai dati in Visual Studio

Cenni preliminari sull'utilizzo di file di un database locale nelle soluzioni Office

Connessione ai dati nelle applicazioni Windows Form

Altre risorse

Dati nelle soluzioni Office

Associazione di dati ai controlli nelle soluzioni Office