Passo a passo: Ligação de dados complexa em um projeto de nível de aplicativo
Você pode associar dados a controles do host e de formulários do Windows em projetos de aplicativo.Essa explicação passo a passo demonstra como adicionar controles a uma planilha do Microsoft Office Excel e associar em tempo de execução os controles a dados.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de aplicativo para Excel 2013 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Essa explicação passo a passo mostra as seguintes tarefas:
Adicionando um controle de ListObject a uma planilha em tempo de execução.
Criando BindingSource que conecta o controle a uma instância de um dataset.
Observaçã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 de Visual Studio. |
Pré-requisitos
Para completar este passo-a-passo, são necessários os seguintes componentes:
-
Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
Excel 2013 ou Excel 2010.
Acesso a uma instância do SQL Server em execução 2005 ou do SQL Server 2005 express que tenha o banco de dados de exemplo AdventureWorksLT anexou-lhe.Você pode baixar o banco de dados de AdventureWorksLT de Site de CodePlex.Para obter mais informações sobre como anexar um banco de dados, consulte os seguintes tópicos:
Para anexar um banco de dados usando o SQL Server Management Studio ou o SQL Server Management Studio Express, consulte Como: Anexar um banco de dados (SQL Server Management Studio).
Para anexar um banco de dados usando a linha de comando, consulte Como: Anexar um Arquivo ao banco de dados SQL Server Express.
Criando um novo projeto
A primeira etapa é criar um projeto do suplemento do excel.
Para criar um novo projeto
Crie um projeto do suplemento com o nome do excel que preenche planilhas de um banco de dados, usando Visual Basic ou C#.
Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.
O Visual Studio abre o arquivo de ThisAddIn.vb ou de ThisAddIn.cs e adiciona as planilhas preenchendo de um projeto do banco de dados a Gerenciador de Soluções.
Criando uma Fonte de Dados
Use a janela de Fontes de Dados para adicionar um dataset tipado ao seu projeto.
Para adicionar um dataset tipado ao projeto
Se a janela de Fontes de Dados não estiver visível, exibi-la por, na barra de menus, escolhendo Modo de Visualização, Outras Janelas, Fontes de Dados.
Escolha Adicionar Nova Fonte de Dados para iniciar Assistente para Configuração de Fonte de Dados.
Clique em Banco de Dados, e clique em Avançar.
Se você tiver uma conexão existente para o banco de dados de AdventureWorksLT , escolha esses conexão e clique Avançar.
Se não, clique Nova Conexão, e use a caixa de diálogo de Adicionar Conexão para criar uma nova conexão.Para obter mais informações, consulte Como: conectar-se a dados em um banco de dados..
Na página de Salvar a Cadeia de Conexão no Arquivo de Configuração do Aplicativo , clique Avançar.
Na página de Escolher Objetos do Banco de Dados , expanda e selecione TabelasEndereço (SalesLT).
Clique em Concluir.
O arquivo de AdventureWorksLTDataSet.xsd é adicionado a Gerenciador de Soluções.Esse arquivo define os seguintes itens:
Um conjunto de dados tipado chamado AdventureWorksLTDataSet.Este dataset representa o conteúdo da tabela de Endereçar (SalesLT) no banco de dados AdventureWorksLT.
TableAdapterAddressTableAdapterchamado.Este TableAdapter pode ser usado para ler e gravar dados em AdventureWorksLTDataSet.Para obter mais informações, consulte Visão geral do TableAdapter.
Você usará ambos esses objetos posteriormente neste passo-a-passo.
Criando controles e controles de associação a dados
Para essa explicação passo a passo, o controle de ListObject exibe todos os dados na tabela que você selecionou assim que o usuário abrisse a pasta de trabalho.O objeto de lista BindingSource usa o controle para se conectar ao banco de dados.
Para obter mais informações sobre associar controles a dados, consulte A ligação de dados a controles em soluções do Office.
Para adicionar o objeto da lista de, o dataset, e o adaptador da tabela
Na classe de ThisAddIn , declare os seguintes controles para exibir a tabela de Address 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;
No método de ThisAddIn_Startup , adicione o seguinte código para inicializar o conjunto de dados e preencher o dataset com informações do conjunto de dados de 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();
Adicione o seguinte código ao método ThisAddIn_Startup.Isso gera um item host que estende a planilha.Para obter mais informações, consulte Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.
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);
Crie um intervalo e adicionar o controle de 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");
Associar o objeto da lista AdventureWorksLTDataSet usando BindingSource.Passe em nomes das colunas que você deseja associar ao objeto da 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 controle de ListObject exibe os dados da tabela de Address dataset AdventureWorksLTDataSet .
Para testar o suplemento
Pressione F5.
Um controle de ListObject chamado addressListObject é criado na planilha.Ao mesmo tempo, um objeto de dataset chamado adventureWorksLTDataSet e BindingSource chamado addressBindingSource é adicionado ao projeto.ListObject é associado a BindingSource, que por sua vez é associado ao objeto de 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: rolar pelos registros de banco de dados em uma planilha
Como: atualizar uma fonte de dados com dados de um controle de Host
Passo a passo: Ligação de dados simples em um projeto de nível de documento
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
Vinculando 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