Partilhar via


Como: Criar uma tabela de pesquisa com o componente BindingSource do Windows Forms

Uma tabela de pesquisa é uma tabela de dados que tem uma coluna que exibe dados de registros em uma tabela relacionada. Nos procedimentos a seguir, um controle ComboBox é usado para exibir o campo com a relação de chave estrangeira da tabela pai para filho.

Para ajudar a visualizar essas duas tabelas e essa relação, aqui está um exemplo de uma tabela pai e filho:

CustomersTable (tabela pai)

ID do Cliente Nome do Cliente
712 Paulo Koch
713 Tamara Johnston

OrdersTable (tabela filho)

ID do Pedido Data da encomenda ID do Cliente
903 12 de fevereiro de 2004 712
904 13 de fevereiro de 2004 713

Nesse cenário, uma tabela, CustomersTable, armazena as informações reais que você deseja exibir e salvar. Mas, para economizar espaço, a tabela deixa de fora dados que adicionam clareza. A outra tabela, OrdersTable, contém apenas informações relacionadas à aparência sobre qual número de ID do cliente é equivalente a qual data e ID do pedido. Não há menção aos nomes dos clientes.

Quatro propriedades importantes são definidas no controle ComboBox Control para criar a tabela de pesquisa.

  • A propriedade DataSource contém o nome da tabela.

  • A propriedade DisplayMember contém a coluna de dados dessa tabela que você deseja exibir para o texto de controle (o nome do cliente).

  • A propriedade ValueMember contém a coluna de dados dessa tabela com as informações armazenadas (o número de ID na tabela pai).

  • A propriedade SelectedValue fornece o valor de pesquisa para a tabela filha, com base em ValueMember.

Os procedimentos abaixo mostram como dispor seu formulário como uma tabela de pesquisa e vincular dados aos controles nele. Para concluir os procedimentos com êxito, você deve ter uma fonte de dados com tabelas pai e filho que tenham uma relação de chave estrangeira, conforme mencionado anteriormente.

Para criar a interface do usuário

  1. Do ToolBox, arraste um controle ComboBox para o formulário.

    Esse controle exibirá a coluna da tabela pai.

  2. Arraste outros controles para exibir detalhes da tabela filho. O formato dos dados na tabela deve determinar quais controles você escolher. Para obter mais informações, consulte controles do Windows Forms por função.

  3. Arraste um controlo BindingNavigator para o formulário; isto permitirá que navegue pelos dados na tabela secundária.

Para conectar-se aos dados e associá-los aos controles

  1. Selecione o ComboBox e clique no glifo Tarefa inteligente para exibir a caixa de diálogo Tarefa inteligente.

  2. Selecione Usar itens vinculados aos dados.

  3. Clique na seta ao lado da caixa suspensa Fonte de Dados. Se uma fonte de dados tiver sido configurada anteriormente para o projeto ou formulário, ela aparecerá; caso contrário, conclua as etapas a seguir (Este exemplo usa as tabelas Customers e Orders do banco de dados de exemplo Northwind e se refere a elas entre parênteses).

    1. Clique Adicionar Fonte de Dados do Projeto para se conectar aos dados e criar uma fonte de dados.

    2. Na página de boas-vindas do Assistente de Configuração da Fonte de Dados , clique em Avançar.

    3. Selecione Banco de Dados na página Escolha um Tipo de Fonte de Dados.

    4. Selecione uma conexão de dados na lista de conexões disponíveis na página Escolha sua conexão de dados. Se a conexão de dados desejada não estiver disponível, selecione Nova Conexão para criar uma nova conexão de dados.

    5. Clique em Sim, guardar a cadeia de conexão no ficheiro de configuração da aplicação.

    6. Selecione os objetos de banco de dados a serem trazidos para seu aplicativo. Nesse caso, selecione uma tabela pai e uma tabela filho (por exemplo, Clientes e Pedidos) com uma relação de chave estrangeira.

    7. Substitua o nome do conjunto de dados padrão, se desejar.

    8. Clique Concluir.

  4. Na caixa suspensa Exibir Membro, selecione o nome da coluna (por exemplo, ContactName) a ser exibido na caixa de combinação.

  5. Na caixa suspensa Value Member, selecione a coluna (por exemplo, CustomerID) para executar a operação de consulta na tabela filha.

  6. Na caixa suspensa Valor Selecionado, navegue até Fontes de Dados do Projeto e o conjunto de dados que você acabou de criar que contém as tabelas pai e filho. Selecione a mesma propriedade da tabela filha que é o membro de valor da tabela mãe (por exemplo, Encomendas.CustomerID). Os componentes apropriados BindingSource, conjunto de dados e adaptador de tabela serão criados e adicionados ao formulário.

  7. Associe o controlo BindingNavigator com o BindingSource da tabela filha (por exemplo, OrdersBindingSource).

  8. Associe os controlos, exceto os controlos ComboBox e BindingNavigator, aos campos de detalhes do BindingSource na tabela filha (por exemplo, OrdersBindingSource) que o utilizador deseja exibir.

Ver também