Compartilhar via


Passo a passo: Ligação de dados simples 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 um documento Microsoft Office Word 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 Word 2013 e Word 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 ContentControl a um documento em tempo de execução.

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

  • Ativando o usuário para percorrer os registros e exibi-los no controle.

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 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).

Criando um novo projeto

A primeira etapa é criar um projeto do suplemento ao Word.

Para criar um novo projeto

  1. Crie um projeto do suplemento ao Word com o nome que preenche documentos 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 os documentos preenchendo de um projeto do banco de dados a Gerenciador de Soluções.

  2. Se seu projeto utiliza .NET Framework 4 ou .NET Framework 4.5, adicione uma referência ao conjunto de Microsoft.Office.Tools.Word.v4.0.Utilities.dll.Essa referência é necessária para adicionar programaticamente posteriormente controles de formulários do Windows para o documento nessa explicação passo a passo.

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

  1. 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.

  2. Escolha Adicionar Nova Fonte de Dados para iniciar Assistente para Configuração de Fonte de Dados.

  3. Clique em Banco de Dados, e clique em Avançar.

  4. 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..

  5. Na página de Salvar a Cadeia de Conexão no Arquivo de Configuração do Aplicativo , clique Avançar.

  6. Na página de Escolher Objetos do Banco de Dados , expanda e selecione TabelasO cliente (SalesLT).

  7. 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 do O cliente (SalesLT) no banco de dados AdventureWorksLT.

    • TableAdapterCustomerTableAdapterchamado.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

A interface para exibir registros do banco de dados nessa explicação passo a passo é bem básico, e é criada certeza dentro do documento.Um ContentControl exibe um registro de banco de dados de cada vez, e dois controles de Button permite que você rolar para frente e para trás entre os registros.O controle de conteúdo BindingSource usa 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 criar a interface no documento

  1. Na classe de ThisAddIn , declare os seguintes controles para exibir e percorrer a tabela de Customer de banco de dados de AdventureWorksLTDataSet .

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. No método de ThisAddIn_Startup , adicione o seguinte código para inicializar o dataset, preenchem o conjunto de dados com informações do banco de dados de AdventureWorksLTDataSet .

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Adicione o seguinte código ao método ThisAddIn_Startup.Isso gera um item host que estende o documento.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 currentDocument As Word.Document = Me.Application.ActiveDocument
    
            Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    
                Word.Document currentDocument = this.Application.ActiveDocument;
    
                Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
    
  4. Define vários intervalos no início do documento.Esses buracos identificam onde inserir texto e colocar controles.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Adicionar controles de interface a intervalos definidos anteriormente.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(range3, _
        "richTextContentControl1")
    
    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. Associar o controle a AdventureWorksLTDataSet de conteúdo usando BindingSource.Para desenvolvedores de C#, adicione dois manipuladores de eventos para os controles de Button .

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add("Text", Me.customerBindingSource, _
        "CompanyName", True, Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Adicione o seguinte código para navegar pelos registros do banco de dados.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Testando o suplemento

Quando você abre Word, o controle de conteúdo exibe dados do dataset de AdventureWorksLTDataSet .Rolagem pelos registros do banco de dados clicando nos botões de Avançar e de Anterior .

Para testar o suplemento

  1. Pressione F5.

    Um controle chamado customerContentControl de conteúdo é criado e preenchido com dados.Ao mesmo tempo, um objeto de dataset chamado adventureWorksLTDataSet e BindingSource chamado customerBindingSource é adicionado ao projeto.ContentControl é associado a BindingSource, que por sua vez é associado ao objeto de dataset.

  2. Clique nos botões de Avançar e de Anterior para percorrer os registros do banco de dados.

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

Como: preencher documentos com dados de objetos

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

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

Outros recursos

Data in Office Solutions

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