Compartilhar via


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

Você pode associar um controle do host a uma fonte de dados e atualizar a fonte de dados com as alterações que são feitas aos dados no controle.Há duas principais etapas em esse processo:

  1. Atualizar a fonte de dados em memória com os dados modificados no controle.Normalmente, a fonte de dados em memória é DataSet, DataTable, ou outro objeto de dados.

  2. Atualizar o banco de dados com os dados modificados na fonte de dados na memória.Isso é aplicável somente se a fonte de dados é conectada a um banco de dados back-end, como um banco de dados SQL Server ou do Microsoft Office Access.

Para obter mais informações sobre associação de controles e dados host, consulte Itens de host e visão geral sobre controles de Host e A ligação de dados a controles em soluções do Office.

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

Atualizar a fonte de dados em memória

Por padrão, os controles host que permitem a associação de dados simples (como controles de conteúdo em um documento do word ou controle do intervalo nomeado em uma planilha do excel) não salvar alterações de dados para a fonte de dados na memória.Isto é, quando um usuário final altera um valor em um controle do host e então navega fora do controle, o novo valor no controle não é salvo automaticamente para a fonte de dados.

Para salvar os dados para a fonte de dados, você pode escrever código que atualiza a fonte de dados em resposta a um evento específico em tempo de execução, ou você pode configurar o controle para atualizar automaticamente a fonte de dados quando o valor nas alterações de controle.

Você não precisa salvar alterações de ListObject para a fonte de dados na memória.Quando você associa um controle de ListObject a dados, o controle de ListObject salva automaticamente alterações na fonte de dados em memória sem exigir o código adicional.

Para atualizar em tempo de execução a fonte de dados em memória

  • Chame o método de WriteValue do objeto de Binding que associa o controle à fonte de dados.

    O exemplo salva as alterações feitas a um controle de NamedRange em uma planilha do excel para a fonte de dados.Este exemplo pressupõe que você tem um controle de NamedRange chamado namedRange1 com seu limite de propriedade de Value2 a um campo em uma fonte de dados.

    Me.NamedRange1.DataBindings("Value2").WriteValue()
    
    this.namedRange1.DataBindings["Value2"].WriteValue();
    

bybtbt99.collapse_all(pt-br,VS.110).gifAtualizando automaticamente a fonte de dados em memória

Você também pode configurar um controle de modo que atualiza automaticamente a fonte de dados na memória.Em um projeto da nível de usuário, você pode fazer isso usando código ou o designer.Em um projeto de aplicativo, você deve usar código.

Para definir um controle para atualizar automaticamente a fonte de dados na memória usando código

  • Use o modo de System.Windows.Forms.DataSourceUpdateMode.OnPropertyChangeddo objeto de Binding que associa o controle à fonte de dados.há duas opções para atualizar a fonte de dados:

    • Para atualizar a fonte de dados quando o controle é validado, defina essa propriedade como System.Windows.Forms.DataSourceUpdateMode.OnValidation.

    • Para atualizar a fonte de dados quando o valor da propriedade associada a dados do controle for alterado, defina essa propriedade como System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged.

      ObservaçãoObservação

      A opção de System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged não se aplica para exprimir controles host, porque a palavra não oferecem notificações de alteração ou de controle da alteração.Em o entanto, essa opção pode ser usada para controles de formulários do windows em documentos do word.

    O exemplo de NamedRange configurar um controle para atualizar automaticamente a fonte de dados quando o valor nas alterações de controle.Este exemplo pressupõe que você tem um controle de NamedRange chamado namedRange1 com seu limite de propriedade de Value2 a um campo em uma fonte de dados.

    Me.NamedRange1.DataBindings("Value2").DataSourceUpdateMode = _
        DataSourceUpdateMode.OnPropertyChanged
    
    this.namedRange1.DataBindings["Value2"].DataSourceUpdateMode = 
        DataSourceUpdateMode.OnPropertyChanged;
    

Para definir um controle para atualizar automaticamente a fonte de dados na memória usando o designer

  1. Em o Visual Studio, abra o documento ou pasta de trabalho do Excel do word no designer.

  2. Clique no controle que você deseja atualizar automaticamente a fonte de dados.

  3. Em a janela de Propriedades , expanda a propriedade de (DataBindings) .

  4. A o lado da propriedade de (Avançado) , clique no botão de reticências (Captura de tela de VisualStudioEllipsesButton).

  5. Em a caixa de diálogo de Formatação e Associação Avançada , clique na lista suspensa de Modo de Atualização da Fonte de Dados e selecione um dos seguintes valores:

    • Para atualizar a fonte de dados quando o controle é validado, OnValidationselecione.

    • Para atualizar a fonte de dados quando o valor da propriedade associada a dados do controle for alterado, OnPropertyChangedselecione.

      ObservaçãoObservação

      A opção de OnPropertyChanged não se aplica para exprimir controles host, porque a palavra não oferecem notificações de alteração ou de controle da alteração.Em o entanto, essa opção pode ser usada para controles de formulários do windows em documentos do word.

  6. fechar a caixa de diálogo de Formatação e Associação Avançada .

atualizando o banco de dados

Se a fonte de dados em memória está associada com um banco de dados, você deve atualizar o banco de dados com as alterações na fonte de dados.Para obter mais informações sobre como atualizar um banco de dados, consulte Salvar dados em Datasets e Como: atualizar dados usando um TableAdapter.

para atualizar o banco de dados

  1. Chame o método de EndEdit de BindingSource para o controle.

    BindingSource é gerado automaticamente quando você adiciona um controle associado a dados a um documento ou a uma pasta de trabalho em tempo de design.BindingSource conecta o controle ao dataset tipado em seu projeto.Para obter mais informações, consulte Visão geral sobre o componente BindingSource.

    O exemplo de código a seguir pressupõe que o projeto contém BindingSource chamado customersBindingSource.

    Me.CustomersBindingSource.EndEdit()
    
    this.customersBindingSource.EndEdit();
    
  2. Chame o método de Update de TableAdapter gerado em seu projeto.

    TableAdapter é gerado automaticamente quando você adiciona um controle associado a dados a um documento ou a uma pasta de trabalho em tempo de design.TableAdapter conecta o dataset tipado em seu projeto ao banco de dados.Para obter mais informações, consulte Visão geral do TableAdapter.

    O exemplo de código a seguir pressupõe que você tenha uma conexão para a tabela clientes no banco de dados Northwind, e se o projeto contém TableAdapter chamado customersTableAdapter e um dataset tipado chamado northwindDataSet.

    Me.CustomersTableAdapter.Update(Me.NorthwindDataSet.Customers)
    
    this.customersTableAdapter.Update(this.northwindDataSet.Customers);
    

Consulte também

Tarefas

Como: atualizar dados usando um TableAdapter

Como: rolar pelos registros de banco de dados em uma planilha

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

Como: preencher documentos com dados de objetos

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

Como: preencher documentos com dados de serviços

Conceitos

Salvar dados em Datasets

Outros recursos

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