Vinculando dados a controles
Se aplica a |
---|
As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office. Projetos de nível de documento
Projetos de nível de aplicativo
For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto. |
Você pode Ligar controles Windows Forms e host controla em um documento do Microsoft Office Word ou uma planilha do Microsoft Office Excel a uma Origem de dados tão os controles automaticamente Exibir os dados.
Iniciando no Visual Studio 2008 Serviço Pack 1 (SP1), você pode Ligar dados a controles em projetos de nível de aplicativo.Se você não tiver SP1 instalado, você Ligar dados a controles apenas em projetos de nível de documento.
Controles de host estendem objetos que estão nos modelos de objeto de Word e Excel, como controles de conteúdo no Word e intervalos no Excel nomeados.For more information, see Itens de host e Visão geral sobre controles de host.
Windows Forms e controles de host usam o modelo de ligação de dados de Windows Forms, que oferece suporte tanto de ligação de dados simples dados complexos ligação a fontes de dados, como tabelAmbos de dados e datAmbosets.Para Concluir informações sobre o modelo de ligação de dados no Windows Forms, consulte Ligação de dados e o Windows Forms.
Ligação de dados simples
Ligação de dados simples existe quando uma propriedade do Controlarar é Ligado para um elemento de dados, como um valor em uma tabela de dados.Por exemplo, o Controlarar de NamedRange tem uma propriedade de Value2 que pode ser Ligado a um campo em um dataset.Quando o campo no dataset for alterado, o valor no intervalo nomeado também altera.Tudo controles de host, exceto para o controle de XMLNodes, suportam vinculação de dados simples.O Controlarar de XMLNodes é uma coleção e, portanto, ele não oferece suporte a ligação de dados.
Para executar ligação de dados simples para um Controlarar de host, Adicionar um Binding à propriedade DataBindings do Controlarar.Um objeto Binding representa a ligação simples entre um valor de propriedade do Controlarar e o valor de um elemento de dados.
O exemplo a seguir demonstra como Ligar a propriedade Value2 a um elemento de dados em um projeto de nível de documento.Este exemplo de código é parte de um exemplo de maior que é fornecido para a propriedade DataBindings.
Dim binding1 As New Binding("Value2", ds, "Customers.Names", True)
namedRange1.DataBindings.Add(binding1)
Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
namedRange1.DataBindings.Add(binding1);
Para orientações que demonstra a ligação de dados simples, consulte Demonstra Passo a passo: Ligação de dados simples em um projeto de nível de documento para um projeto de nível de documento e Demonstra Passo a passo: Ligação de dados simples em um projeto de nível de aplicativo para um projeto de nível de aplicativo.
Ligação de dados complexa
Ligação de dados complexos existe quando uma propriedade do Controlarar é Ligado em mais de um elemento de dados, como várias colunas em uma tabela de dados.O Controlarar de ListObject para o Excel é o único Controlarar de host que suporte vinculação de dados complexos.Há também vários controles Windows Forms que suportam vinculação de dados complexos, como o controle de DataGridView.
Para executar ligação de dados complexos, defina a propriedade DataSource o Controlarar como um objeto de Origem de dados que suporte vinculação de dados complexos.Por exemplo, a propriedade de DataSource do Controlarar ListObject pode ser Ligado a Múltiplo colunas em uma tabela de dados.Tudo dados na tabela de dados aparece no Controlarar ListObject e que os dados na tabela de dados é alterado, a ListObject também muda.Para obter uma lista das fontes de dados que você pode usar para vinculação de dados complexos, consulte Fontes de dados com suporte no Windows Forms.
O exemplo de código a seguir cria um DataSet com dois objetos de DataTable e preenche uma das tabelas com dados.O código, em seguida, liga o ListObject a tabela que contém dados.Este exemplo é para um projeto de nível de documento do Excel.
Private Sub ListObject_DataSourceAndMember()
' Create a DataSet and two DataTables.
Dim ordersDataSet As New DataSet("ordersDataSet")
Dim tableCustomers As New DataTable("Customers")
Dim tableProducts As New DataTable("Products")
ordersDataSet.Tables.Add(tableCustomers)
ordersDataSet.Tables.Add(tableProducts)
' Add a data to the Customers DataTable.
tableCustomers.Columns.Add(New DataColumn("LastName"))
tableCustomers.Columns.Add(New DataColumn("FirstName"))
Dim dr As DataRow = tableCustomers.NewRow()
dr("LastName") = "Chan"
dr("FirstName") = "Gareth"
tableCustomers.Rows.Add(dr)
' Create a list object.
Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
Me.Controls.AddListObject(Me.Range( _
"A1"), "Customers")
' Bind the list object to the Customers table.
List1.AutoSetDataBoundColumnHeaders = True
List1.DataSource = ordersDataSet
List1.DataMember = "Customers"
End Sub
private void ListObject_DataSourceAndMember()
{
// Create a DataSet and two DataTables.
DataSet ordersDataSet = new DataSet("ordersDataSet");
DataTable tableCustomers = new DataTable("Customers");
DataTable tableProducts = new DataTable("Products");
ordersDataSet.Tables.Add(tableCustomers);
ordersDataSet.Tables.Add(tableProducts);
// Add a data to the Customers DataTable.
tableCustomers.Columns.Add(new DataColumn("LastName"));
tableCustomers.Columns.Add(new DataColumn("FirstName"));
DataRow dr = tableCustomers.NewRow();
dr["LastName"] = "Chan";
dr["FirstName"] = "Gareth";
tableCustomers.Rows.Add(dr);
// Create a list object.
Microsoft.Office.Tools.Excel.ListObject list1 =
this.Controls.AddListObject(
this.Range["A1", missing], "Customers");
// Bind the list object to the Customers table.
list1.AutoSetDataBoundColumnHeaders = true;
list1.DataSource = ordersDataSet;
list1.DataMember = "Customers";
}
Para orientações que demonstram a ligação de dados complexos, consulte Demonstra Passo a passo: Ligação de dados complexa em um projeto de nível de documento para um projeto de nível de documento e Demonstra Passo a passo: Ligação de dados complexa em um projeto de nível de aplicativo para um projeto de nível de aplicativo.
Exibindo dados em documentos e pastas de trabalho
Em projetos de nível de documento, você pode usar a janela de Data Sources para adicionar controles ligados a dados a seus documentos ou pastas de trabalho de uma só facilmente, da mesma maneira você usá-lo para Windows Forms.Para obter mais informações sobre como usar a janela de fontes de dados, consulte Exibindo visão geral de dados e Janela de fontes de dados.
Arrastando controles de Dadosta Sources Janela
Um Controlarar é criado no documento quando você arrastar um objeto para ele Dados janela de A Dadosta Sources.O tipo de Controlarar que é criado depende se você estiver vinculando um Simples coluna de dados ou de várias colunas de dados.
Para que o Excel, um Controlarar de NamedRange é criado na planilha para cada campo individual, e um Controlarar de ListObject é criado para cada intervalo de dados que inclui Múltiplo linhas e colunas.Você pode alterar esse padrão, selecionando a tabela ou campo na janela fontes de dados e, em seguida, escolhendo um Controlarar diferente Soltar Soltar-Para Baixo.
Para o Word 2007, um Controlarar de ContentControl é adicionado aos documentos.O tipo de Controlarar de conteúdo depende de como o tipo de dados do campo que você Selecionado.Para o Word 2003, um Controlarar de Bookmark é adicionado aos documentos.
Vinculando dados em projetos de nível de documento em tempo de design
Os tópicos a seguintes mostram são exemplos de ligação de dados em tempo de design:
Vinculando dados em projetos de nível de aplicativo
Em projetos de nível de aplicativo, você pode adicionar controles somente em tempo de execução.Os tópicos a seguintes mostram são exemplos de ligação de dados em tempo de execução:
Demonstra Passo a passo: Ligação de dados simples em um projeto de nível de aplicativo
Demonstra Passo a passo: Ligação de dados complexa em um projeto de nível de aplicativo
Atualizando dados que são Ligados a controles de host
Ligação de dados entre uma Origem de dados e um Controlarar de host envolve uma Atualizar de dados bidirecional.Em vinculação de dados simples, as alterações na Origem de dados são refletidas automaticamente no Controlarar de host, mas alterações no Controlarar host exigem uma chamada explícita para atualizar a Origem de dados.O motivo é que em alguns casos, alterações em um campo com dados vinculados não são aceitas, a menos que eles são acompanhados por alterações em um outro campo ligados a dados.Por exemplo, você pode ter dois campos, uma para a idade e outra para anos de experiência.Experiência não pode exceder idade.Um usuário não é possível atualizar a idade de 50 para 25 e a experiência de 30 10, a menos que ele ou ela faz as alterações ao mesmo tempo.Para resolver esse problema, os campos com ligação de dados simples não são atualizados até que as atualizações explicitamente são enviadas pelo código.
Para atualizar uma Origem de dados de controles de host que permitem Voltar a ligação de dados simples, você deve enviar atualizações para a Origem de dados na memória (tais como um DataSet ou DataTable) e o banco de dados Voltar-end, se sua solução usar um.
Você não precisará atualizar explicitamente a Origem de dados na memória quando você executar ligação de dados complexos usando o Controlarar de ListObject.Nesse maiúscminúsc, as alterações são automaticamente enviadas para a Origem de dados na memória sem código adicional.
For more information, see Como: Atualizar uma Origem de dados com dados de um Controlarar de host.
Consulte também
Tarefas
Como: Criar um Controlarar de Ligado de simples em um Windows Formulário
Como: Atualizar dados usando um TableAdapter
Conceitos
Ligação de dados e o Windows Forms
Visão Geral Sobre Salvamento de Dados
Outros recursos
Controle de Simultaneidade no ADO.NET
Date |
History |
Motivo |
---|---|---|
De 2008 de julho |
Informações sobre vinculação de dados em suplementos de nível de aplicativo Adicionados. |
Alteração de recurso do SP1. |