Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Cómo: Crear una tabla de búsqueda para un control ComboBox, ListBox o CheckedListBox de 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.

name

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 Id. 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 control 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 con la información almacenada (número de Id.).

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 Id.) 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

    Configuración

    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, utilice 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, utilice 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, accediendo 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");
    
    
Mostrar: