Procedimiento para crear una tabla de búsqueda para un control ComboBox, ListBox o CheckedListBox de formularios Windows Forms

A veces resulta útil mostrar datos en un formato fácil de usar en un formulario de Windows Forms y, no obstante, almacenar los datos en un formato más coherente para su programa. Por ejemplo, un formulario de pedido de comida puede mostrar los elementos del menú por nombre en un cuadro de lista. Sin embargo, la tabla de datos que registra el pedido contendría los números de identificador únicos que representan la comida. En las siguientes tablas se proporciona un ejemplo en el que se indica cómo almacenar y mostrar datos de formulario de pedido de comida.

OrderDetailsTable

OrderID ItemID Cantidad
4085 12 1
4086 13 3

ItemTable

id Nombre
12 Patata
13 Pollo

En este escenario, una tabla (OrderDetailsTable) almacena la información real que a usted le interesa mostrar y guardar. Pero para ahorrar espacio, lo hace en un modo bastante críptico. La otra tabla (ItemTable) solo contiene información relativa al aspecto sobre qué número de identificador de cliente equivale a qué nombre de comida, y nada sobre los pedidos de comida en sí.

La tabla ItemTable está conectada al control ComboBox, ListBox o CheckedListBox mediante tres propiedades. La propiedad DataSource contiene el nombre de esta tabla. La propiedad DisplayMember contiene la columna de datos de esa tabla que quiere mostrar en el control (el nombre de la comida). La propiedad ValueMember contiene la columna de datos de esa tabla con la información almacenada (número de identificador).

La tabla OrderDetailsTable está conectada al control mediante su colección de enlaces, a la que se accede mediante la propiedad DataBindings. Cuando se agrega un objeto de enlace a la colección, se conecta una propiedad de control a un miembro de datos específico (la columna de números de identificador) de un origen de datos (la tabla OrderDetailsTable). Cuando se realiza una selección en el control, la entrada de formulario se guarda en esta tabla.

Para crear una tabla de búsqueda

  1. Agregue un control ComboBox, ListBox o CheckedListBox al formulario.

  2. Conéctese a su origen de datos.

  3. Establezca a una relación de datos entre las dos tablas. Consulte Introducción a los objetos DataRelation.

  4. Establezca las siguientes propiedades. Puede establecerse en código o en el diseñador.

    Propiedad. Parámetro
    DataSource La tabla que contiene la información sobre qué número de identificador equivale a qué elemento. En el escenario anterior es ItemTable.
    DisplayMember La columna de la tabla de origen de datos que desea mostrar en el control. En el escenario anterior es "Name" (para establecer en el código, use comillas).
    ValueMember La columna de la tabla de origen de datos que contiene la información almacenada. En el escenario anterior es "ID" (para establecer en el código, use comillas).
  5. En un procedimiento llame al método Add de la clase ControlBindingsCollection para enlazar la propiedad SelectedValue del control a la tabla que registra la entrada de formulario. También puede hacerlo en el Diseñador, en lugar de en el código. Para ello, acceda a la propiedad DataBindings del control en la ventana Propiedades. En el escenario anterior es OrderDetailsTable y la columna es "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")  
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");  
    

Consulte también