Como criar uma tabela de pesquisa para um controle ComboBox, ListBox ou CheckedListBox dos Windows Forms
Às vezes, é útil exibir dados em um formato amigável em um formulário do Windows Forms, porém, armazene os dados em um formato que seja mais significativo para o programa. Por exemplo, um formulário de pedido de alimentos pode exibir os itens de menu por nome em uma caixa de listagem. No entanto, a tabela de dados que registra a ordem conteria os números de identificação exclusivos que representam os alimentos. As tabelas a seguir mostram um exemplo de como armazenar e exibir dados de formulários de pedidos de alimentos.
OrderDetailsTable
OrderID | ItemID | Quantidade |
---|---|---|
4085 | 12 | 1 |
4086 | 13 | 3 |
ItemTable
ID | Nome |
---|---|
12 | Batata |
13 | Frango |
Nesse cenário, uma tabela, OrderDetailsTable, armazena as informações reais que serão exibidas e salvas. Porém, para economizar espaço, isso é feito de maneira bastante enigmática. A outra tabela, ItemTable, contém apenas informações relacionadas à aparência sobre qual número de ID é equivalente a qual nome de alimento, e nada sobre os pedidos de alimentos.
O ItemTable é conectado ao controle , ListBoxou CheckedListBox por meio de ComboBoxtrês propriedades. A propriedade DataSource
contém o nome dessa tabela. A propriedade DisplayMember
contém a coluna de dados da tabela que você deseja exibir no controle (o nome do alimento). A propriedade ValueMember
contém a coluna de dados dessa tabela com as informações armazenadas (o número de ID).
O OrderDetailsTable é conectado ao controle por sua coleção de associações, acessada por meio da DataBindings propriedade. Ao adicionar um objeto de associação à coleção, uma propriedade de controle será conectada a um membro de dados específico (a coluna de números de ID) em uma fonte de dados (OrderDetailsTable). Quando uma seleção é feita no controle, a entrada de formulário será salva nessa tabela.
Criar uma tabela de pesquisa
Adicione um ComboBoxcontrole , ListBoxou CheckedListBox ao formulário.
Conecte-se à fonte de dados.
Estabeleça uma relação de dados entre as duas tabelas. Consulte Introdução a Objetos DataRelation.
Defina as seguintes propriedades. Elas podem ser definidos no código ou no designer.
Propriedade Configuração DataSource A tabela que contém informações sobre qual número de ID é equivalente a qual item. No cenário anterior, isso é ItemTable
.DisplayMember A coluna da tabela de fonte de dados a ser exibida no controle. No cenário anterior, isso é "Name"
(para definir no código, use aspas).ValueMember A coluna da tabela de fonte de dados que contém as informações armazenadas. No cenário anterior, isso é "ID"
(para definir no código, use aspas).Em um procedimento, chame o AddControlBindingsCollection método da classe para vincular a propriedade do SelectedValue controle à tabela que registra a entrada do formulário. Você também pode fazer isso no Designer em vez de no código, acessando a propriedade do DataBindings controle na janela Propriedades . No cenário anterior, isso é
OrderDetailsTable
e a coluna é"ItemID"
.ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
Confira também
.NET Desktop feedback