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 a tabela 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 | Paul Koch |
713 | Tamara Johnston |
OrdersTable (tabela filho)
ID do Pedido | Data do Pedido | 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 da ID do cliente é equivalente a qual data de pedido e ID do pedido. Não há menção aos nomes dos clientes.
Quatro propriedades importantes são definidas no Controle ComboBox 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 contendo as informações armazenadas (o número de ID na tabela pai).
A propriedade SelectedValue fornece o valor de pesquisa da tabela filho, com base no ValueMember.
Os procedimentos abaixo mostram como definir seu formulário como uma tabela de pesquisa e associar dados aos controles nele. Para concluir com êxito os procedimentos, você deve ter uma fonte de dados com as tabelas pai e filho que tenham uma relação de chave estrangeira, como mencionado anteriormente.
Para criar a interface do usuário
Na Caixa de Ferramentas, arraste um controle ComboBox para o formulário.
Este controle exibirá a coluna da tabela principal.
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, confira Controles dos Windows Forms por função.
Arraste um controle BindingNavigator para o formulário; isso permitirá que você navegue os dados na tabela filho.
Para se conectar aos dados e associá-los aos controles
Selecione o ComboBox e clique no glifo da Tarefa Inteligente para exibir a caixa de diálogo Tarefa Inteligente.
Selecione Usar itens vinculados aos dados.
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 será exibida; caso contrário, conclua as etapas a seguir (este exemplo usa as tabelas Clientes e Pedidos do banco de dados de exemplo Northwind e refere-se a elas entre parênteses).
Clique em Adicionar Fonte de Dados do Projeto para se conectar aos dados e criar uma fonte de dados.
Na página de boas-vindas do Assistente de Configuração de Fonte de Dados, clique em Avançar.
Selecione Banco de dados na página Escolher um tipo de fonte de dados.
Selecione uma conexão de dados na lista de conexões disponíveis na página Escolher 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.
Clique em Sim, salve a string de conexão para armazenar a cadeia de conexão no arquivo de configuração do aplicativo.
Selecione os objetos de banco de dados a serem colocados em seu aplicativo. Neste caso, selecione uma tabela pai e uma tabela filho (por exemplo, clientes e pedidos) com uma relação de chave estrangeira.
Substitua o nome do conjunto de dados padrão se desejar.
Clique em Finalizar.
Na caixa suspensa Exibir Membro, selecione o nome da coluna (por exemplo, ContactName) a ser exibida na caixa de combinação.
Na caixa suspensa Membro do Valor, selecione a coluna (por exemplo, CustomerID) para executar a operação de pesquisa na tabela filho.
Na caixa suspensa Valor Selecionado, navegue até Fontes de Dados do Projeto e o conjunto de dados que você criou que contém as tabelas pai e filho. Selecione a mesma propriedade da tabela filho que é o Membro do Valor da tabela pai (por exemplo, Orders.CustomerID). Os componentes apropriados BindingSource, conjunto de dados e adaptador de tabela serão criados e adicionados ao formulário.
Vincule o controle BindingNavigator para o BindingSource da tabela filho (por exemplo,
OrdersBindingSource
).Vincule os controles diferentes dos controles ComboBox e BindingNavigator aos campos de detalhes do BindingSource da tabela filho (Por exemplo,
OrdersBindingSource
) que você deseja exibir.
Consulte também
.NET Desktop feedback