Pasar datos entre formulariosPass data between forms

En este tutorial se proporcionan instrucciones paso a paso para pasar datos de un formulario a otro.This walkthrough provides step-by-step instructions for passing data from one form to another. Con las tablas customers y orders de Northwind, un formulario permite a los usuarios seleccionar a un cliente y un segundo formulario muestra los pedidos del cliente seleccionado.Using the customers and orders tables from Northwind, one form allows users to select a customer, and a second form displays the selected customer's orders. Este tutorial muestra cómo crear un método en el segundo formulario que recibe los datos de la primera forma.This walkthrough shows how to create a method on the second form that receives data from the first form.

Nota

En este tutorial solo se muestra una manera de pasar datos de un formulario a otro.This walkthrough demonstrates only one way to pass data between forms. Hay otras opciones para pasar datos a un formulario, incluida la creación de un segundo constructor para recibir datos, o crear una propiedad pública que se puede establecer con los datos de la primera forma.There are other options for passing data to a form, including creating a second constructor to receive data, or creating a public property that can be set with data from the first form.

Las tareas ilustradas en este tutorial incluyen:Tasks illustrated in this walkthrough include:

  • Crear un nuevo aplicación de Windows Forms proyecto.Creating a new Windows Forms Application project.

  • Crear y configurar un conjunto de datos con la Asistente para configuración de orígenes de datos.Creating and configuring a dataset with the Data Source Configuration Wizard.

  • Selecciona el control que se creará en el formulario al arrastrar elementos desde la orígenes de datos ventana.Selecting the control to be created on the form when dragging items from the Data Sources window. Para obtener más información, consulte establecer el control que se creará al arrastrar desde la ventana de orígenes de datos.For more information, see Set the control to be created when dragging from the Data Sources window.

  • Crear un control enlazado a datos arrastrando elementos desde la orígenes de datos ventana a un formulario.Creating a data-bound control by dragging items from the Data Sources window onto a form.

  • Crear un segundo formulario con una cuadrícula para mostrar datos.Creating a second form with a grid to display data.

  • Crear una consulta de TableAdapter para buscar los pedidos de un cliente determinado.Creating a TableAdapter query to fetch orders for a specific customer.

  • Pasar datos de un formulario a otro.Passing data between forms.

Requisitos previosPrerequisites

Este tutorial usa SQL Server Express LocalDB y la base de datos de ejemplo Northwind.This walkthrough uses SQL Server Express LocalDB and the Northwind sample database.

  1. Si no tiene SQL Server Express LocalDB, puede instalarlo desde el página de descarga de SQL Server Express, o a través del instalador de Visual Studio.If you don't have SQL Server Express LocalDB, install it either from the SQL Server Express download page, or through the Visual Studio Installer. El instalador de Visual Studio, se puede instalar SQL Server Express LocalDB como parte de la almacenamiento de datos y el procesamiento carga de trabajo, o como un componente individual.In the Visual Studio Installer, SQL Server Express LocalDB can be installed as part of the Data storage and processing workload, or as an individual component.

  2. Instalar la base de datos de ejemplo Northwind, siga estos pasos:Install the Northwind sample database by following these steps:

    1. En Visual Studio, abra el Explorador de objetos de SQL Server ventana.In Visual Studio, open the SQL Server Object Explorer window. (Explorador de objetos de SQL Server se instala como parte de la almacenamiento de datos y el procesamiento carga de trabajo en el instalador de Visual Studio.) Expanda el SQL Server nodo.(SQL Server Object Explorer is installed as part of the Data storage and processing workload in the Visual Studio Installer.) Expand the SQL Server node. Haga doble clic en la instancia de LocalDB y seleccione nueva consulta... .Right-click on your LocalDB instance and select New Query....

      Se abre una ventana del editor de consultas.A query editor window opens.

    2. Copia la script Transact-SQL de Northwind en el Portapapeles.Copy the Northwind Transact-SQL script to your clipboard. Este script de T-SQL crea la base de datos Northwind desde el principio y lo rellena con datos.This T-SQL script creates the Northwind database from scratch and populates it with data.

    3. Pegue el script de T-SQL en el editor de consultas y, a continuación, elija la Execute botón.Paste the T-SQL script into the query editor, and then choose the Execute button.

      Después de unos minutos, finaliza la ejecución de la consulta y se crea la base de datos Northwind.After a short time, the query finishes executing and the Northwind database is created.

Crear la aplicación de Windows FormsCreate the Windows Forms Application

Para crear el nuevo proyecto de WindowsTo create the new Windows project

  1. En Visual Studio, en el archivo menú, seleccione New, proyecto... .In Visual Studio, on the File menu, select New, Project....

  2. Expanda Visual C# o Visual Basic en el panel izquierdo, seleccione escritorio clásico de Windows.Expand either Visual C# or Visual Basic in the left-hand pane, then select Windows Classic Desktop.

  3. En el panel central, seleccione la aplicación de Windows Forms tipo de proyecto.In the middle pane, select the Windows Forms App project type.

  4. Denomine el proyecto PassingDataBetweenFormsy, a continuación, elija Aceptar.Name the project PassingDataBetweenForms, and then choose OK.

    El PassingDataBetweenForms proyecto se crea y se agrega a el Explorador de soluciones.The PassingDataBetweenForms project is created, and added to Solution Explorer.

Crear el origen de datosCreate the data source

Para crear el origen de datosTo create the data source

  1. En el menú Datos , haga clic en Mostrar orígenes de datos.On the Data menu, click Show Data Sources.

  2. En el orígenes de datos ventana, seleccione Agregar nuevo origen de datos para iniciar el configuración del origen de datos asistente.In the Data Sources window, select Add New Data Source to start the Data Source Configuration wizard.

  3. Seleccione Base de datos en la página Elegir un tipo de datos de origen y luego haga clic en Siguiente.Select Database on the Choose a Data Source Type page, and then click Next.

  4. En el elegir un modelo de base de datos , comprueba que conjunto de datos se especifica y, a continuación, haga clic en siguiente.On the Choose a database model page, verify that Dataset is specified, and then click Next.

  5. En el elegir la conexión de datos página, realice una de las siguientes acciones:On the Choose your Data Connection page, do one of the following:

    • Si una conexión de datos a la base de datos de ejemplo Northwind está disponible en la lista desplegable, selecciónela.If a data connection to the Northwind sample database is available in the drop-down list, select it.

    • Seleccione nueva conexión para iniciar el agregar o modificar conexión cuadro de diálogo.Select New Connection to launch the Add/Modify Connection dialog box.

  6. Si la base de datos requiere una contraseña y si está habilitada la opción para incluir datos confidenciales, seleccione la opción y, a continuación, haga clic en siguiente.If your database requires a password and if the option to include sensitive data is enabled, select the option and then click Next.

  7. En el Guardar cadena de conexión en el archivo de configuración de la aplicación página, haga clic en siguiente.On the Save connection string to the Application Configuration file page, click Next.

  8. En el elija los objetos de base de datos página, expanda la tablas nodo.On the Choose your Database Objects page, expand the Tables node.

  9. Seleccione el clientes y pedidos tablas y, a continuación, haga clic en finalizar.Select the Customers and Orders tables, and then click Finish.

    El NorthwindDataSet se agrega al proyecto y el clientes y pedidos tablas aparecen en la orígenes de datos ventana.The NorthwindDataSet is added to your project, and the Customers and Orders tables appear in the Data Sources window.

Crear el primer formulario (Form1)Create the first form (Form1)

Puede crear una cuadrícula enlazada a datos (un DataGridView control), arrastrando el clientes nodo desde el orígenes de datos ventana hasta el formulario.You can create a data-bound grid (a DataGridView control), by dragging the Customers node from the Data Sources window onto the form.

Para crear una cuadrícula enlazada a datos en el formularioTo create a data-bound grid on the form

Crear el segundo formulario (Form2)Create the second form (Form2)

Para crear un segundo formulario al que pasar los datosTo create a second form to pass the data to

  1. En el menú Proyecto, elija Agregar Windows Forms.From the Project menu, choose Add Windows Form.

  2. Deje el nombre predeterminado de Form2y haga clic en agregar.Leave the default name of Form2, and click Add.

  3. Arrastre el método main pedidos nodo desde el orígenes de datos ventana Form2.Drag the main Orders node from the Data Sources window onto Form2.

    A DataGridView y una barra de herramientas (BindingNavigator) para navegar por los registros aparecen en Form2.A DataGridView and a tool strip (BindingNavigator) for navigating records appear on Form2. A NorthwindDataSet, CustomersTableAdapter, BindingSource, y BindingNavigator aparecen en la Bandeja de componentes.A NorthwindDataSet, CustomersTableAdapter, BindingSource, and BindingNavigator appear in the component tray.

  4. Eliminar el OrdersBindingNavigator desde la Bandeja de componentes.Delete the OrdersBindingNavigator from the component tray.

    El OrdersBindingNavigator desaparece del Form2.The OrdersBindingNavigator disappears from Form2.

Agregar una consulta de TableAdapter al Form2 para cargar los pedidos del cliente seleccionado en el Form1Add a TableAdapter query to Form2 to load orders for the selected customer on Form1

Para crear una consulta de TableAdapterTo create a TableAdapter query

  1. Haga doble clic en el NorthwindDataSet.xsd en el archivo el Explorador de soluciones.Double-click the NorthwindDataSet.xsd file in Solution Explorer.

  2. Haga clic en el OrdersTableAdaptery seleccione Agregar consulta.Right-click the OrdersTableAdapter, and select Add Query.

  3. Deje la opción predeterminada de usar instrucciones SQLy, a continuación, haga clic en siguiente.Leave the default option of Use SQL statements, and then click Next.

  4. Deje la opción predeterminada de SELECT que devuelve filasy, a continuación, haga clic en siguiente.Leave the default option of SELECT which returns rows, and then click Next.

  5. Agregue una cláusula WHERE para que devuelva la consulta Orders tomando como base el CustomerID.Add a WHERE clause to the query, to return Orders based on the CustomerID. La consulta debe ser similar a lo siguiente:The query should be similar to the following:

    SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry  
    FROM Orders   
    WHERE CustomerID = @CustomerID  
    

    Nota

    Compruebe que la sintaxis de los parámetros sea correcta para su base de datos.Verify the correct parameter syntax for your database. Por ejemplo, en Microsoft Access, la cláusula WHERE sería: WHERE CustomerID = ?.For example, in Microsoft Access, the WHERE clause would look like: WHERE CustomerID = ?.

  6. Haga clic en Siguiente.Click Next.

  7. Para el rellenar un nombre de DataTableMethod, tipo FillByCustomerID.For the Fill a DataTableMethod Name, type FillByCustomerID.

  8. Desactive el devolver un DataTable opción y, a continuación, haga clic en siguiente.Clear the Return a DataTable option, and then click Next.

  9. Haga clic en Finalizar.Click Finish.

Crear un método en Form2 para pasar datos aCreate a method on Form2 to pass data to

Para crear un método al que pasar datosTo create a method to pass data to

  1. Haga clic en Form2y seleccione ver código para abrir Form2 en el Editor de código.Right-click Form2, and select View Code to open Form2 in the Code Editor.

  2. Agregue el código siguiente a Form2 después de la Form2_Load método:Add the following code to Form2 after the Form2_Load method:

    Friend Sub LoadOrders(ByVal CustomerID As String)
        OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID)
    End Sub
    
    internal void LoadOrders(String CustomerID)
    {
        ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
    }
    

Cree un método en Form1 para pasar los datos y muestra Form2Create a method on Form1 to pass data and display Form2

Para crear un método para pasar datos a Form2To create a method to pass data to Form2

  1. En Form1, haga clic en la cuadrícula de datos de cliente y, a continuación, haga clic en propiedades.In Form1, right-click the Customer data grid, and then click Properties.

  2. En el propiedades ventana, haga clic en eventos.In the Properties window, click Events.

  3. Haga doble clic en el CellDoubleClick eventos.Double-click the CellDoubleClick event.

    Aparece el editor de código.The code editor appears.

  4. Actualice la definición del método para que coincida con el ejemplo siguiente:Update the method definition to match the following sample:

    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();
    }
    
    Private Sub CustomersDataGridView_DoubleClick() 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
    

Ejecutar la aplicaciónRun the Application

Para ejecutar la aplicaciónTo run the application

  • Presione F5 para ejecutar la aplicación.Press F5 to run the application.

  • Haga doble clic en un registro de cliente en Form1 para abrir Form2 con los pedidos del cliente.Double-click a customer record in Form1 to open Form2 with that customer's orders.

Pasos siguientesNext Steps

Dependiendo de los requisitos de la aplicación, existen varios pasos que se pueden realizar después de pasar los datos de un formulario a otro.Depending on your application requirements, there are several steps you may want to perform after passing data between forms. Entre las mejoras que podría realizar se incluyen:Some enhancements you could make to this walkthrough include:

Vea tambiénSee Also

Enlazar controles de Windows Forms a datos en Visual StudioBind Windows Forms controls to data in Visual Studio