Tutorial: Pasar datos entre formularios en una aplicación para Windows
Actualización: noviembre 2007
Este tutorial proporciona instrucciones detalladas para pasar datos de un formulario a otro. Utilizando las tablas de clientes (customers) y pedidos (orders) de Northwind, un formulario permitirá a los usuarios seleccionar un cliente y un segundo formulario mostrará los pedidos del cliente seleccionado. Este tutorial muestra cómo crear un método en un formulario que recibe los datos del primer formulario.
Nota: |
---|
Este tutorial sólo muestra una manera de pasar datos entre formularios. Existen otras opciones para pasar datos a un formulario, incluidas las siguientes: crear un segundo constructor para recibir datos o crear una propiedad pública que se pueda establecer con datos del primer formulario. |
En este tutorial se muestran las siguientes tareas:
Crear un proyecto nuevo de aplicación para Windows.
Crear y configurar un conjunto de datos con el Asistente para la configuración de orígenes de datos.
Seleccionar el control que se va a crear en el formulario al arrastrar elementos desde la ventana Orígenes de datos. Para obtener más información, vea Cómo: Establecer el control que se creará al arrastrar desde la ventana de orígenes de datos.
Crear un control enlazado a datos arrastrando elementos desde la ventana Orígenes de datos hasta un formulario.
Crear un segundo formulario con una cuadrícula para mostrar los datos.
Crear una consulta de TableAdapter para obtener los pedidos de un cliente concreto.
Pasar datos entre formularios.
Requisitos previos
Para poder completar este tutorial, necesitará:
- Acceso a la base de datos de ejemplo Northwind. Para obtener más información, vea Cómo: Instalar bases de datos de ejemplo.
Crear la aplicación para Windows
Para crear el nuevo proyecto de Windows
Desde el menú Archivo, cree un nuevo proyecto.
Asigne al proyecto el nombre PassingDataBetweenForms.
Seleccione Aplicación para Windows y haga clic en Aceptar. Para obtener más información, vea Crear aplicaciones basadas en Windows.
El proyecto PassingDataBetweenForms se crea y se agrega al Explorador de soluciones.
Crear el origen de datos
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 origen de datos 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 y si está habilitada la opción de incluir datos confidenciales, seleccione esa opción 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 NorthwindDataSet al proyecto y las tablas Customers y Orders aparecen en la ventana Orígenes de datos.
Crear el primer formulario (Form1)
Puede crear una cuadrícula enlazada a datos (un control DataGridView) arrastrando el nodo Customers desde la ventana Orígenes de datos hasta el formulario.
Para crear una cuadrícula enlazada a datos en el formulario
Arrastre el nodo Customers principal desde la ventana Orígenes de datos a Form1.
En el formulario Form1 aparecen un control DataGridView y una barra de herramientas (BindingNavigator) para explorar los registros. NorthwindDataSet, CustomersTableAdapter, BindingSourcey BindingNavigator aparecen en la bandeja de componentes.
Crear el segundo formulario (Form2)
Para crear un segundo formulario al cual pasar los datos
En el menú Proyecto, seleccione Agregar Windows Forms.
Deje el nombre predeterminado de Form2 y haga clic en Agregar.
Arrastre el nodo Orders principal desde la ventana Orígenes de datos hasta Form2.
En el formulario Form2 aparecen un control DataGridView y una barra de herramientas (BindingNavigator) para explorar los registros. NorthwindDataSet, CustomersTableAdapter, BindingSourcey BindingNavigator aparecen en la bandeja de componentes.
Elimine OrdersBindingNavigator de la bandeja de componentes.
El control OrdersBindingNavigator desaparece de Form2.
Agregar una consulta de TableAdapter al Form2 para cargar los pedidos del cliente seleccionado en el Form1
Para crear una consulta de TableAdapter
Haga doble clic en el archivo NorthwindDataSet.xsd en el Explorador de soluciones.
Haga clic con el botón secundario del mouse en OrdersTableAdapter y seleccione Agregar consulta.
Deje la opción predeterminada de Usar instrucciones SQL y, a continuación, haga clic en Siguiente.
Deje la opción predeterminada de SELECT que devuelve filas y, a continuación, haga clic en Siguiente.
Agregue una cláusula WHERE a la consulta para devolver los pedidos (Orders) en función del valor de CustomerID. La consulta debe ser similar a lo siguiente:
SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Nota: Compruebe la sintaxis de parámetro correcta para la base de datos. Por ejemplo, en Microsoft Access, la cláusula WHERE debe tener este aspecto: WHERE CustomerID = ?.
Haga clic en Siguiente.
Para el Nombre de métodoRellenar un DataTable, escriba FillByCustomerID.
Borre la opción Devolver un DataTable y, a continuación, haga clic en Siguiente.
Haga clic en Finalizar.
Crear un método en el Form2 al cual pasar los datos
Para crear un método al cual pasar los datos
Haga clic con el botón secundario del mouse en el Form2 y seleccione Ver código para abrir el Form2 en el Editor de código.
Reemplace el método Form2_Load que se agregó automáticamente al formulario con el código siguiente:
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Crear un método en el Form1 para pasar los datos y mostrar el Form2
Para crear un método para pasar los datos desde el Form2
Haga clic con el botón secundario del mouse en el Form1 y seleccione Ver código para abrir el Form1 en el Editor de código.
Agregue el código siguiente a Form1 debajo del método Form1_Load:
Private Sub CustomersDataGridView_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles CustomersDataGridView.DoubleClick Dim SelectedRowView As Data.DataRowView Dim SelectedRow As NorthwindDataSet.CustomersRow SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView) SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow) Dim OrdersForm As New Form2 OrdersForm.LoadOrders(SelectedRow.CustomerID) OrdersForm.Show() End Sub
private void customersDataGridView_DoubleClick(object sender, EventArgs e) { System.Data.DataRowView SelectedRowView; NorthwindDataSet.CustomersRow SelectedRow; SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current; SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row; Form2 OrdersForm = new Form2(); OrdersForm.LoadOrders(SelectedRow.CustomerID); OrdersForm.Show(); }
Ejecutar la aplicación
Para ejecutar la aplicación
Presione F5 para ejecutar la aplicación.
Haga doble clic en un registro de cliente en Form1 para abrir Form2 con los pedidos de ese cliente.
Pasos siguientes
Dependiendo de los requisitos de la aplicación, existen varios pasos que se pueden realizar después de pasar datos entre los formularios. Entre las mejoras que podría realizar en las tareas de este tutorial se incluyen:
Editar el conjunto de datos para agregar o quitar objetos de la base de datos. Para obtener más información, vea Cómo: Editar un conjunto de datos.
Agregar funcionalidad para guardar los datos en la base de datos. Para obtener más información, vea Cómo: Guardar cambios de un conjunto de datos en una base de datos.
Vea también
Conceptos
Información general sobre la presentación de datos
Información general sobre orígenes de datos
Información general sobre TableAdapter
Otros recursos
Conectarse a datos en Visual Studio
Preparar la aplicación para recibir datos
Mostrar datos en formularios en aplicaciones para Windows