Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Los conjuntos de datos y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de los años 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras las aplicaciones están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar datos y conservar los cambios de nuevo en la base de datos. Aunque los conjuntos de datos han demostrado ser una tecnología muy exitosa, se recomienda que las nuevas aplicaciones .NET usen Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.
En este tutorial se proporcionan instrucciones paso a paso para pasar datos de un formulario a otro. Con las tablas Customers and Orders de la base de datos de ejemplo Northwind, un formulario permite a los usuarios seleccionar un cliente y un segundo formulario muestra los pedidos del cliente seleccionado. En este tutorial se muestra cómo crear un método en el segundo formulario que recibe datos del primer formulario.
En este tutorial, completará las siguientes tareas:
- Cree un nuevo proyecto de aplicación Windows Forms (.NET Framework).
- Cree y configure un conjunto de datos mediante el Asistente para configuración del origen de datos.
- Seleccione 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, consulte Establecimiento del control que se va a crear al arrastrar desde la ventana Orígenes de datos.
- Cree un control enlazado a datos arrastrando elementos desde la ventana Orígenes de datos a un formulario.
- Cree un segundo formulario con una cuadrícula que muestre los datos.
- Cree una
TableAdapter
consulta para capturar pedidos para un cliente específico. - Pasar datos entre formularios.
Nota:
En este tutorial solo se muestra una manera de pasar datos entre formularios. Hay otras opciones para pasar datos a un formulario, como crear un segundo constructor para recibir datos o crear una propiedad pública que se pueda establecer con datos del primer formulario.
Prerrequisitos
Las cargas de trabajo de procesamiento y desarrollo de escritorio de .NETy almacenamiento de datos instalados en Visual Studio. Para instalarlos, abra el Instalador de Visual Studio y elija Modificar, o Más>modificar, junto a la versión de Visual Studio que desea usar. Para obtener más información, vea Modificar Visual Studio.
SQL Server Express 2019 LocalDB instalado bien desde la página de descargas de SQL Server o mediante el Instalador de Visual Studio como parte de la carga de trabajo de almacenamiento y procesamiento de datos.
La base de datos de ejemplo Northwind, creada siguiendo estos pasos:
En Visual Studio, abra la ventana Explorador de objetos de SQL Server seleccionándola en el menú Ver . El Explorador de objetos de SQL Server se instala como parte de la carga de trabajo de almacenamiento y procesamiento de datos.
Expanda el nodo SQL Server , haga clic con el botón derecho en la instancia de LocalDB y seleccione Nueva consulta para abrir una ventana del editor de consultas.
Copia el script Northwind Transact-SQL en el Portapapeles. Este script de T-SQL crea la base de datos Northwind y la rellena con datos.
Pegue el script T-SQL en el editor de consultas y seleccione Ejecutar en la parte superior de la ventana para crear la base de datos Northwind.
Creación del proyecto de aplicación de Windows Forms
En Visual Studio, en el menú Archivo , seleccione Nuevo>proyecto.
Seleccione C# o Visual Basic en la lista desplegable Todos los lenguajes , Windows en la lista desplegable Todas las plataformas y Escritorio de la lista Todos los tipos de proyecto .
Seleccione Aplicación de Windows Forms (.NET Framework) en la lista de plantillas de proyecto y, a continuación, seleccione Siguiente.
Asigne al proyecto el nombre PassingDataBetweenForms, seleccione Siguiente y, a continuación, seleccione Crear.
Se crea el proyecto PassingDataBetweenForms y se agrega al Explorador de soluciones. La vista del diseñador de Form1 aparece en el editor.
Crear el origen de datos
Abra la ventana Orígenes de datos seleccionando ProjectAdd New Data Source (Agregar nuevo origen de datos> en el menú de Visual Studio.
En la ventana Orígenes de datos , seleccione Agregar nuevo origen de datos para iniciar el Asistente para configuración del origen de datos .
En la página Elegir un tipo de origen de datos, seleccione Base de datos y, a continuación, seleccione Siguiente.
En la página Elegir un modelo de base de datos , compruebe que el conjunto de datos está especificado y seleccione Siguiente.
En la página Elegir la conexión de datos , si ya está disponible una conexión de datos a la base de datos de ejemplo Northwind, selecciónela y vaya al paso Elegir los objetos de base de datos . De lo contrario, seleccione Nueva conexión.
En la pantalla Elegir origen de datos , seleccione Archivo de base de datos de Microsoft SQL Server y, a continuación, seleccione Continuar.
En la pantalla Agregar conexión , seleccione Examinar, vaya a y seleccione el archivo northwnd.mdf y seleccione Abrir.
Seleccione Autenticación de Windows o autenticación de SQL Server y proporcione un nombre de usuario y una contraseña para acceder a la base de datos.
Seleccione Probar conexión para probar la conexión. Cuando la conexión se realice correctamente, seleccione Aceptar.
En la página Elegir conexión de datos , confirme que aparece el archivo de base de datos y seleccione Siguiente.
Seleccione No en la pregunta emergente ¿Desea copiar el archivo en el proyecto y modificar la conexión?
En la página Guardar la cadena de conexión en el archivo de configuración de la aplicación , seleccione Sí. Asigne el nombre NorthwindConnectionString a la conexión y, a continuación, seleccione Siguiente.
En la página Elegir los objetos de base de datos , expanda el nodo Tablas , seleccione las tablas Clientes y Pedidos , asigne al conjunto de datos el nombre NorthwindDataSet y, a continuación, seleccione Finalizar.
NorthwindDataSet se agrega al proyecto y las tablas Customers y Orders aparecen en la ventana Orígenes de datos.
Rellenar el primer formulario
Para crear una cuadrícula enlazada a datos, arrastre el nodo Clientes desde la ventana Orígenes de datos a Form1.
Un DataGridView control y una BindingNavigator franja de herramientas para navegar por los registros aparecen en Form1. Un objeto NorthwindDataSet,
CustomersTableAdapter
, BindingSourcey BindingNavigator aparecen en la bandeja de componentes.
Creación del segundo formulario
Cree un segundo formulario para pasar datos.
En el menú Proyecto, elija Agregar formulario (Formularios Windows Forms).
Deje el nombre predeterminado de Form2 y seleccione Agregar.
Arrastre el nodo Pedidos principal desde la ventana Orígenes de datos a Form2.
A DataGridView y una BindingNavigator barra de herramientas para navegar por los registros aparecen en Form2. Un objeto NorthwindDataSet,
CustomersTableAdapter
, BindingSourcey BindingNavigator aparecen en la bandeja de componentes.Elimine OrdersBindingNavigator de la bandeja de componentes. BindingNavigator desaparece de Form2.
Agregar una consulta TableAdapter
Agregue una TableAdapter
consulta a Form2 que cargue pedidos para el cliente seleccionado en Form1.
Haga doble clic en el archivo NorthwindDataSet.xsd en el Explorador de soluciones.
Haga clic con el botón derecho en OrdersTableAdapter en la tabla Orders y seleccione Agregar>consulta.
Deje la opción predeterminada usar instrucciones SQL y seleccione Siguiente.
Deje la opción predeterminada de SELECT, que devuelve filas y seleccione Siguiente.
En ¿Qué datos debería cargar la tabla?, para devolver
Orders
basado en elCustomerID
, añade una cláusulaWHERE
al final de la consulta. La consulta final debe tener un aspecto similar al código siguiente:SELECT OrderID, CustomerID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Nota:
Use la sintaxis de parámetro correcta para la base de datos. Por ejemplo, en Microsoft Access, la cláusula
WHERE
tendría un aspecto similar aWHERE CustomerID = ?
.Seleccione Siguiente.
En la pantalla Elegir métodos para generar , seleccione Rellenar una tabla de datos y escriba FillByCustomerID.
Anule la selección de la opción Devolver una tabla de datos y, a continuación, seleccione Finalizar.
Creación de un método en Form2 para pasar datos a
Haga clic con el botón derecho en Form2 y seleccione Ver código para abrir el código Form2 en el editor.
En el código Form2 , quite el contenido del
Form2_Load
método y agregue el código siguiente después delForm2_Load
método :
internal void LoadOrders(String CustomerID)
{
ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
}
Crear un método en Form1 para pasar datos y mostrar Form2
En la vista Diseñador de Form1, haga clic con el botón derecho en la cuadrícula Datos del cliente y, a continuación, seleccione Propiedades.
En la ventana Propiedades , seleccione el icono Eventos de la barra de herramientas superior.
Haga doble clic en el evento DoubleClick para abrir el editor de código.
En el editor de código, actualice la definición del método para que coincida con el ejemplo siguiente:
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();
}
Ejecución y prueba de la aplicación
Presione F5 para ejecutar la aplicación.
En la aplicación, haga doble clic en un registro de cliente en Form1 para abrir Form2 con los pedidos de ese cliente.
Pasos siguientes
En función de los requisitos de la aplicación, puede realizar varios pasos después de pasar datos entre formularios. Algunas mejoras que podría realizar en este tutorial incluyen:
Editar el conjunto de datos para agregar o quitar objetos de base de datos. Para más información, consulte Creación y configuración de conjuntos de datos.
Agregar funcionalidad para guardar los datos en la base de datos. Para obtener más información, consulte Guardar datos de nuevo en la base de datos.