Tutorial: Mostrar datos relacionados en un formulario Windows Forms
En muchos escenarios de aplicaciones, es posible que desee trabajar con los datos que provienen de más de una tabla y, con frecuencia, con datos de tablas relacionadas. Es decir, trabajar con una relación primaria-secundaria. Por ejemplo, puede crear un formulario donde, al seleccionar un registro de cliente, se muestren los pedidos de ese cliente. La visualización de los registros relacionados en el formulario se realiza estableciendo la propiedad DataSource del BindingSource secundario del BindingSource primario (no la tabla secundaria) y estableciendo la propiedad DataMember del BindingSource secundario de la relación de datos que enlaza las tablas primaria y secundaria.
Las tareas ilustradas en este tutorial incluyen:
Crear un proyecto de aplicación para Windows.
Crear y configurar un conjunto de datos en la aplicación basado en las tablas Customers y Orders y de la base de datos Northwind utilizando el Asistente para la configuración de orígenes de datos.
Agregar controles para mostrar datos de la tabla Customers.
Agregar controles para mostrar los pedidos (Orders) basados en el cliente (Customer) seleccionado.
Probar la aplicación seleccionando diferentes clientes y comprobando que se muestran los pedidos correctos del cliente seleccionado.
Requisitos previos
Para completar las tareas de este tutorial, necesitará:
- Acceso a la base de datos de ejemplo Northwind. Para configurar bases de datos de ejemplo, vea Cómo: Instalar bases de datos de ejemplo.
Crear el proyecto
El primer paso es crear una Aplicación para Windows.
Para crear el proyecto de aplicación para Windows
Desde el menú Archivo, cree un nuevo proyecto.
Asigne al proyecto el nombre RelatedDataWalkthrough.
Seleccione Aplicación para Windows y haga clic en Aceptar. Para obtener más información, vea Crear aplicaciones basadas en Windows.
El proyecto RelatedDataWalkthrough se crea y se agrega al Explorador de soluciones.
Crear el origen de datos
Este paso crea un conjunto de datos basado en las tablas Customers y Orders de la base de datos de ejemplo Northwind.
Para crear el origen de datos
En el menú Datos, haga clic en Mostrar orígenes de datos.
En la ventana Orígenes de datos, seleccione Agregar nuevo origen de datos para iniciar el Asistente para configuración de orígenes de datos.
Seleccione Base de datos en la página Elegir un tipo de datos de origen y luego haga clic en Siguiente.
En la página Elegir la conexión de datos realice una de las siguientes operaciones:
Si una conexión de datos a la base de datos de ejemplo Northwind está disponible en la lista desplegable, selecciónela.
O bien
Seleccione Nueva conexión para iniciar el cuadro de diálogo Agregar o modificar conexión. Para obtener más información, vea Agregar/Modificar conexión (Cuadro de diálogo, General).
Si su base de datos requiere una contraseña, seleccione la opción para incluir datos confidenciales y haga clic en Siguiente.
Haga clic en Siguiente en la página Guardar la cadena de conexión en el archivo de configuración de la aplicación.
Expanda el nodo Tablas en la página Elija los objetos de base de datos.
Seleccione las tablas Customers y Orders y, a continuación, haga clic en Finalizar.
Se agrega al proyecto NorthwindDataSet y la tabla Customers aparece en la ventana Orígenes de datos.
Crear controles para mostrar datos de la tabla Customers
Para crear controles para mostrar los datos de cliente (registros primarios)
En la ventana Orígenes de datos, seleccione la tabla Customers y, a continuación, haga clic en la flecha de lista desplegable.
Elija Detalles en el menú.
Arrastre el nodo principal Customers de la ventana Orígenes de datos hasta la parte superior de Form1.
Los controles enlazados a datos con etiquetas descriptivas aparecen en el formulario, junto con una barra de herramientas (BindingNavigator) para navegar por los registros. Aparecen en la bandeja de componentes NorthwindDataSet, CustomersTableAdapter, BindingSource y BindingNavigator.
Crear controles para mostrar datos de la tabla Orders
Para crear controles para mostrar los pedidos de cada cliente (registros secundarios)
En la ventana Orígenes de datos, expanda el nodo Customers y seleccione la última columna de la tabla Customers, que es un nodo Orders expansible, y arrástrela hasta la parte inferior de Form1.
Se agrega un control DataGridView al formulario y, a la bandeja de componentes, un nuevo componente BindingSource (OrdersBindingSource) y un TableAdapter (OrdersTableAdapter).
Nota
Abra la Propiedades (ventana) y seleccione OrdersBindingSource. Inspeccione las propiedades DataSource y DataMember para ver cómo está configurado el enlace para mostrar los registros relacionados. DataSource se establece en CustomersBindingSource (el BindingSource de la tabla primaria), en lugar de en la tabla Orders. La propiedad DataMember se establece en FK_Orders_Customers, que es el nombre del objeto DataRelation que relaciona las tablas entre sí.
Probar la aplicación
Para probar la aplicación
Presione F5 para ejecutar la aplicación.
Seleccione distintos clientes mediante el control CustomersBindingNavigator para comprobar que se muestran los pedidos correctos en el control DataGridView.
Pasos siguientes
Dependiendo de los requisitos de la aplicación, hay varios pasos que pueden realizarse después de crear un formulario principal-detalle. Entre las mejoras que podría realizar a este tutorial se incluye:
- Filtrar los registros de Customers agregando parametrización a la tabla Customers. Para ello, seleccione cualquier control que muestre datos contenidos en la tabla Customers, haga clic en la etiqueta inteligente y elige Agregar consulta. Cumplimentar Generador de criterios de búsqueda (cuadro de diálogo). Para obtener más información, vea Cómo: Agregar una consulta parametrizada a una aplicación de Windows Forms.
Vea también
Tareas
Cómo: Mostrar datos relacionados en una aplicación de Windows Forms
Referencia
Información general sobre el componente BindingSource
Información general sobre el control BindingNavigator (formularios Windows Forms)
Conceptos
Novedades en el desarrollo de aplicaciones de datos
Enlazar controles de Windows Forms a datos en Visual Studio
Información general sobre orígenes de datos
Información general sobre TableAdapter