Cómo: Crear una tabla de búsqueda con el componente BindingSource de formularios Windows Forms
Actualización: noviembre 2007
Una tabla de búsqueda es una tabla de datos con una columna que muestra los datos de los registros en una tabla relacionada. En los procedimientos siguientes, se utiliza un control ComboBox para mostrar el campo con la relación de clave externa del elemento primario a la tabla secundaria.
Para poder visualizar estas dos tablas y esta relación, se muestra aquí un ejemplo de un elemento primario y tabla secundaria:
CustomersTable (tabla primaria)
CustomerID |
CustomerName |
---|---|
712 |
Paul Koch |
713 |
Tamara Johnston |
OrdersTable (tabla secundaria)
OrderID |
OrderDate |
CustomerID |
---|---|---|
903 |
12.02.04 |
712 |
904 |
13.02.04 |
713 |
En este escenario, una tabla, CustomersTable, almacena la información real que quiere mostrar y guardar. Sin embargo, para ahorrar espacio, la tabla omite datos que agregan claridad. En la otra tabla, OrdersTable, sólo hay información relacionada con la apariencia acerca de qué número de ID de empleado es equivalente a una fecha de pedido y a un ID de pedido. No hay mención alguna a los nombres de los clientes.
En el control ComboBox (Control, formularios Windows Forms) se establecen cuatro propiedades importantes para crear la tabla de búsqueda.
La propiedad DataSource contiene el nombre de la tabla.
La propiedad DisplayMember contiene la columna de datos de esa tabla que desea mostrar en el texto del control (el nombre del cliente).
La propiedad ValueMember contiene la columna de datos de esa tabla que incluye la información almacenada (el número de identificador en la tabla primaria).
La propiedad SelectedValue proporciona el valor de búsqueda para la tabla secundaria, en función de la propiedad ValueMember.
Los procedimientos siguientes muestran cómo diseñar el formulario como una tabla de búsqueda y cómo enlazar datos a los controles que haya en él. Después de completar correctamente los procedimientos, debe tener un origen de datos con el elemento primario y tablas secundarias que tienen una relación de clave externa, como se ha mencionado anteriormente.
Para crear la interfaz de usuario
En el Cuadro de herramientas, arrastre un control ComboBox al formulario.
Este control mostrará la columna en la tabla primaria.
Arrastre otros controles para mostrar los detalles de la tabla secundaria. El formato de los datos en la tabla debería determinar los controles que se eligen. Para obtener más información, vea Controles de formularios Windows Forms por función.
Arrastre un control BindingNavigator al formulario; de esta forma podrá navegar por los datos en la tabla secundaria.
Para conectar a los datos y enlazarlos a los controles
Seleccione ComboBox y haga clic en el glifo de la tarea inteligente que se va a mostrar en el cuadro de diálogo Tarea inteligente.
Seleccione Utilizar elementos enlazados a datos.
Haga clic en la flecha que se encuentra junto a la lista desplegable Origen de datos. Si se ha configurado previamente un origen de datos para el proyecto o formulario, éste aparecerá. En caso contrario, complete los pasos siguientes (en este ejemplo se utilizan las tablas Customers y Orders de la base de datos de ejemplo Northwind y se hace referencia a ellas entre paréntesis).
Haga clic en Agregar origen de datos del proyecto para conectar a los datos y crear un origen de datos.
En la página de bienvenida del Asistente para la configuración de orígenes de datos, haga clic en Siguiente.
Seleccione Base de datos en la página Elegir un tipo de origen de datos.
Seleccione una conexión de datos de la lista de conexiones disponible en la página Elegir la conexión de datos. Si la conexión de datos deseada no está disponible, seleccione Nueva conexión para crear una nueva conexión de datos. Para obtener más información, vea Agregar/Modificar conexión (Cuadro de diálogo, General).
Haga clic en Sí, guardar la conexión para almacenar la cadena de conexión en el archivo de configuración de la aplicación.
Seleccione los objetos de la base de datos que se van a colocar en la aplicación. En este caso, seleccione una tabla primaria y una tabla secundaria (por ejemplo, Customers y Orders ) con una relación de clave externa.
Si lo desea, reemplace el nombre predeterminado del conjunto de datos
Haga clic en Finalizar.
En el cuadro desplegable Mostrar miembro, seleccione el nombre de columna (por ejemplo, ContactName) que se va a mostrar en el cuadro combinado.
En el cuadro desplegable Miembro de valor, seleccione la columna (por ejemplo, CustomerID) para realizar la operación de búsqueda en la tabla secundaria.
En el cuadro desplegable Valor seleccionado, navegue hasta Orígenes de datos del proyecto y al conjunto de datos que acaba de crear que contiene el elemento primario y las tablas secundarias. Seleccione la misma propiedad de la tabla secundaria que es el miembro de valor de la tabla primaria (por ejemplo, Orders.CustomerID). Se crearán y se agregarán al formulario el BindingSource adecuado, el conjunto de datos y los componentes de adaptador de tabla.
Enlace el control BindingNavigator a BindingSource de la tabla secundaria (por ejemplo, OrdersBindingSource).
Enlace otros controles que no sean ComboBox y BindingNavigator a los campos de detalles desde el control BindingSource de la tabla secundaria (por ejemplo, OrdersBindingSource) que desea mostrar.