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á:

Crear el proyecto

El primer paso es crear una Aplicación para Windows.

Para crear el proyecto de aplicación para Windows

  1. Desde el menú Archivo, cree un nuevo proyecto.

  2. Asigne al proyecto el nombre RelatedDataWalkthrough.

  3. 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

  1. En el menú Datos, haga clic en Mostrar orígenes de datos.

  2. 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.

  3. Seleccione Base de datos en la página Elegir un tipo de datos de origen y luego haga clic en Siguiente.

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

  5. Si su base de datos requiere una contraseña, seleccione la opción para incluir datos confidenciales y haga clic en Siguiente.

  6. Haga clic en Siguiente en la página Guardar la cadena de conexión en el archivo de configuración de la aplicación.

  7. Expanda el nodo Tablas en la página Elija los objetos de base de datos.

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

  1. En la ventana Orígenes de datos, seleccione la tabla Customers y, a continuación, haga clic en la flecha de lista desplegable.

  2. Elija Detalles en el menú.

  3. 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

Ventana Orígenes de datos que muestra la relación

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

  1. Presione F5 para ejecutar la aplicación.

  2. 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:

Vea también

Tareas

Cómo: Mostrar datos relacionados en una aplicación de Windows Forms

Referencia

Orígenes de datos (ventana)

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

Otros recursos

Tutoriales sobre datos