Demonstra Passo a passo: Ligação de dados simples 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 um documento do Word 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 Word 2007 e Word 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 ContentControl a um documento no tempo de execução.
Criando um BindingSource que conecta o controle a uma instância de um dataset.
Habilitando o usuário rolar pelos registros e exibi-los no controle.
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 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).
Word 2007 ou Word 2010.
Acesso a uma instância em execução do SQL Server 2005 ou o SQL Server 2005 Express que tem o AdventureWorksLT o banco de dados de exemplo está anexado ao proprietário. Você pode baixar o AdventureWorksLT de banco de dados da site CodePlex da. Para obter mais informações sobre a anexação de 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 de banco de dados de SQL Server Express.
Creating a New Project
A primeira etapa é criar um projeto de suplemento do Word.
Para criar um novo projeto.
Crie um projeto de suplemento do Word com documentos de preencher o nome de um banco de dados, usando Visual Basic ou C#.
For more information, see Como: Criar projetos do Office em Visual Studio.
Abre o arquivo de ThisAddIn. vb ou ThisAddIn.cs de Visual Studio e adiciona os documentos de preenchimento de um projeto de banco de dados para Solution Explorer.
Se os destinos do projeto de .NET Framework 4, adicione uma referência ao assembly Microsoft.Office.Tools.Word.v4.0.Utilities.dll. Esta referência é necessário para adicionar controles Windows Forms por programação o documento posteriormente nesta explicação passo a passo.
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
On the Data menu, click Add New Data Source.
The Data Source Configuration Wizard opens.
Clique em banco de dadose em seguida, clique em próximo.
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.
No Save the Connection String no arquivo de configuração do aplicativo página, clique em próximo.
No Escolha seus objetos de banco de dados de página, expanda tabelas e selecione o cliente (SalesLT).
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 da (SalesLT) do cliente tabela no banco de dados AdventureWorksLT.
A TableAdapter named CustomerTableAdapter. 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
A interface para exibir os registros do banco de dados nesta explicação é muito básico, e ele é criado dentro do documento. Um ContentControl exibe um registro único banco de dados em uma hora e dois Button controles permitem que você percorra e para trás de registros. O controle de conteúdo usa um BindingSource para se conectar ao 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 criar a interface do documento
No ThisAddIn da classe, declare os seguintes controles para exibir e rolar o Customer índice da AdventureWorksLTDataSet banco de dados.
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;
No ThisAddIn_Startup método, adicione o seguinte código para inicializar o dataset, preencher o dataset com informações sobre o AdventureWorksLTDataSet banco de dados.
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();
Add the following code to the ThisAddIn_Startup method. Isso gera um item de host que estende o documento. 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.
Dim currentDocument As Word.Document = Me.Application.ActiveDocument ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument) ' In projects that target the .NET Framework 3.5, use the following line of code instead. ' Dim extendedDocument As Document = currentDocument.GetVstoObject()
Word.Document currentDocument = this.Application.ActiveDocument; // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument); // In projects that target the .NET Framework 3.5, use the following line of code instead. // Document extendedDocument = currentDocument.GetVstoObject();
Defina vários intervalos no início do documento. Esses intervalos identificam onde inserir texto e coloque os 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;
Adicione os controles de interface para os 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");
Vincular o controle de conteúdo AdventureWorksLTDataSet usando o BindingSource. Para desenvolvedores de C#, adicione dois manipuladores de eventos para o Button controles.
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);
Adicione o seguinte código para navegar pelos registros de 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 o Word, o controle de conteúdo exibe dados a partir de AdventureWorksLTDataSet dataset. Percorrer os registros do banco de dados clicando no próximo e anterior botões.
Para testar o suplemento
Press F5.
Um controle de conteúdo chamado customerContentControl é criada e preenchida com dados. At a mesma hora, um objeto dataset chamado adventureWorksLTDataSet e um BindingSource chamado customerBindingSource são adicionados ao projeto. O ContentControl está vinculado a BindingSource, que por sua vez é vinculado a objeto dataset.
Clique o próximo e anterior botões 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: 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
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
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