Demonstra Passo a passo: Ligação de dados complexa em um projeto de nível de aplicativo

Você pode vincular dados a controles de host e controles de Windows Forms em projetos de nível de aplicativo. Esta explicação passo a passo demonstra como adicionar controles a uma planilha do Excel de Microsoft Office e vincular controles a dados em tempo de execução.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de aplicativo para Excel 2007 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

This walkthrough illustrates the following tasks:

  • Adicionando um ListObject o controle para uma planilha em tempo de execução.

  • Criando um BindingSource que conecta o controle a uma instância de um dataset.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Pré-requisitos

You need the following components to complete this walkthrough:

-

Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).

Creating a New Project

A primeira etapa é criar um projeto de suplemento do Excel.

Para criar um novo projeto.

  • Crie um projeto de suplemento do Excel com as planilhas de preenchimento de nome de um banco de dados, usando Visual Basic ou C#.

    For more information, see Como: Criar projetos do Office em Visual Studio.

    Abre a Visual Studio a ThisAddIn.vb ou ThisAddIn.cs de arquivo e adiciona as planilhas de preenchimento de um projeto de banco de dados para Solution Explorer.

Creating a Data Source

Use o Fontes de dados janela para adicionar um dataset tipado ao seu projeto.

Para adicionar um dataset tipado ao projeto

  1. On the Data menu, click Add New Data Source.

    The Data Source Configuration Wizard opens.

  2. Clique em banco de dadose em seguida, clique em próximo.

  3. Se você tiver uma conexão existente com o AdventureWorksLT banco de dados, escolha esta conexão e clique em próximo.

    Caso contrário, clique em Nova conexãoe usar o Add Connection caixa de diálogo Criar nova conexão. For more information, see Como: Conectar-se a Dados em um Banco de Dados.

  4. No Save the Connection String no arquivo de configuração do aplicativo página, clique em próximo.

  5. No Escolha seus objetos de banco de dados de página, expanda tabelas e selecione endereço (SalesLT).

  6. Click Finish.

    O arquivo AdventureWorksLTDataSet.xsd é adicionado ao Solution Explorer. Esse arquivo define os seguintes itens:

    • A typed dataset named AdventureWorksLTDataSet. Este dataset representa o conteúdo na endereço (SalesLT) tabela no banco de dados AdventureWorksLT.

    • A TableAdapter named AddressTableAdapter. Isso TableAdapter pode ser usado para ler e gravar dados na AdventureWorksLTDataSet. For more information, see Visão geral do TableAdapter.

    Você usará dois desses objetos posteriormente nesta explicação passo a passo.

Criando controles e controles de ligação a dados

Para esta explicação passo a passo, o ListObject controle exibe todos os dados na tabela selecionada assim que o usuário abre a pasta de trabalho. O objeto de lista usa um BindingSource para conectar o controle para o banco de dados.

Para obter mais informações sobre controles de vinculação de dados, consulte A ligação de dados a controles em soluções do Office.

Para adicionar o objeto de lista, o dataset e o adaptador de tabela

  1. No ThisAddIn da classe, declare os seguintes controles para exibir o Address índice da AdventureWorksLTDataSet dataset.

    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. No ThisAddIn_Startup método, adicione o seguinte código para inicializar o dataset e preencher o dataset com informações sobre o AdventureWorksLTDataSet dataset.

    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. Add the following code to the ThisAddIn_Startup method. Isso gera um item de host que estende a planilha. For more information, see Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.

    ObservaçãoObservação

    O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código.

    Dim worksheet As Excel.Worksheet = DirectCast(Me.Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet)
    
    ' Create a workhseet host item for .NET Framework 4 projects.
    Dim extendedWorksheet As Worksheet = Globals.Factory.GetVstoObject(worksheet)
    
    ' For .NET Framework 3.5 projects, use the following code to create a worksheet host item.
    ' Dim extendedWorksheet As Worksheet = worksheet.GetVstoObject()
    
    Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1];
    // Create a workhseet host item for .NET Framework 4 projects.
    Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet);
    
    // For .NET Framework 3.5 projects, use the following code to create a worksheet host item.
    // Worksheet extendedWorksheet = worksheet.GetVstoObject();
    
  4. Criar um intervalo e adicionar o ListObject de controle.

    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", System.Type.Missing];
    this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");
    
  5. Vincular o objeto de lista para AdventureWorksLTDataSet usando o BindingSource. Passar os nomes das colunas que você deseja vincular o objeto de lista.

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

Testando o suplemento

Quando você abre o Excel, o ListObject controle exibe os dados da Address índice da AdventureWorksLTDataSet dataset.

Para testar o suplemento

  • Press F5.

    A ListObject controle chamado addressListObject é criado na planilha. At a mesma hora, um objeto dataset chamado adventureWorksLTDataSet e um BindingSource chamado addressBindingSource são adicionados ao projeto. O ListObject está vinculado a BindingSource, que por sua vez é vinculado a objeto dataset.

Consulte também

Tarefas

Como: Preencher as planilhas com dados de um banco de dados.

Como: Preencher documentos com dados de um banco de dados.

Como: Preencher documentos com dados de serviços

Como: Preencher documentos com dados de objetos

Como: Percorra os registros de banco de dados em uma planilha

Como: Atualizar uma fonte de dados com dados de um controle de Host

Demonstra Passo a passo: Ligação de dados simples em um projeto de nível de documento

Demonstra Passo a passo: Ligação de dados complexa em um projeto de nível de documento

Referência

Visão geral sobre o componente BindingSource

Conceitos

Usando arquivos de banco de dados Local na visão geral das soluções do Office

Visão geral sobre fontes de dados

Vinculação de controles do Windows Forms a dados em Visual Studio

Usando arquivos de banco de dados Local na visão geral das soluções do Office

Conectando a dados em aplicativos Windows Forms

Outros recursos

Dados em soluções do Office

A ligação de dados a controles em soluções do Office