Procedura dettagliata: passaggio di dati tra Windows Form
Questa procedura dettagliata fornisce istruzioni passo-passo per il passaggio dei dati da un form a un altro. Usando le tabelle relative a clienti e ordini del database Northwind, un form consentirà agli utenti di selezionare un cliente, mentre in un altro verranno visualizzati gli ordini del cliente selezionato. In questa procedura dettagliata viene descritto come creare in un form un metodo che riceve dati dal primo form.
Nota
Questa procedura dettagliata illustra solo un modo per passare dati tra i form.Esistono altre alternative per passare dati a un form, incluse la creazione di un secondo costruttore per la ricezione dei dati o la creazione di una proprietà pubblica da impostare con i dati del primo form.
Le attività illustrate nella procedura dettagliata sono le seguenti:
Creazione di un nuovo progetto Applicazione Windows.
Creazione e configurazione di un set di dati con la Configurazione guidata origine dati.
Selezione del controllo da creare nel form durante il trascinamento di elementi dalla finestra Origini dati. Per altre informazioni, vedere Procedura: impostare il controllo da creare per il trascinamento dalla finestra Origini dati.
Creazione del controllo associato a dati mediante il trascinamento degli elementi dalla finestra Origini dati nel form.
Creazione di un secondo form con una griglia per la visualizzazione dei dati.
Creazione di una query TableAdapter per recuperare gli ordini di uno specifico cliente.
Passaggio dei dati da un form all'altro.
Prerequisiti
Per completare questa procedura dettagliata, è necessario:
- Accedere al database di esempio Northwind. Per altre informazioni, vedere Procedura: installare database di esempio.
Creazione dell'applicazione Windows
Per creare il nuovo progetto Windows
Scegliere il comando per la creazione di un nuovo progetto dal menu File.
Assegnare al progetto il nome PassingDataBetweenForms.
Selezionare Applicazione Windows Form e fare clic su OK. Per altre informazioni, vedere Sviluppo di applicazioni client con .NET Framework.
Il progetto PassingDataBetweenForms verrà creato e aggiunto a Esplora soluzioni.
Creazione dell'origine dati
Per creare l'origine dati
Scegliere Mostra origini dati dal menu Dati.
Nella finestra Origini dati selezionare Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.
Selezionare Database nella pagina Scegliere un tipo di origine dati e scegliere Avanti.
Nella pagina Scegli modello database verificare che sia specificato DataSet, quindi scegliere Avanti.
Nella pagina Seleziona connessione dati eseguire una delle operazioni seguenti:
Selezionare la connessione dati al database di esempio Northwind nell'elenco a discesa, se presente.
-oppure-
Selezionare Nuova connessione per aprire la finestra di dialogo Aggiungi/Modifica connessione.
Se per il database è necessaria una password ed è selezionata l'opzione per l'inclusione dei dati sensibili, selezionare l'opzione e fare clic su Avanti.
Nella pagina Salva stringa di connessione nel file di configurazione dell'applicazione fare clic su Avanti.
Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.
Selezionare le tabelle Customers e Orders, quindi scegliere Fine.
L'oggetto NorthwindDataSet viene aggiunto al progetto e le tabelle Customers e Orders vengono visualizzate nella finestra Origini dati.
Creazione del primo form (Form1)
È possibile creare una griglia con associazione a dati, ovvero un controllo DataGridView trascinando il nodo Customers dalla finestra Origini dati nel form.
Per creare una griglia con associazione a dati nel form
Trascinare il nodo Customers principale dalla finestra Origini dati in Form1.
In Form1 vengono visualizzati un oggetto DataGridView e un controllo Toolstrip (BindingNavigator) per lo spostamento all'interno dei record. Nella barra dei componenti vengono visualizzati gli oggetti NorthwindDataSet, CustomersTableAdapter, BindingSource e BindingNavigator.
Creazione del secondo form (Form2)
Per creare un secondo form al quale passare i dati
Scegliere Aggiungi Windows Form dal menu Progetto.
Lasciare il nome predefinito Form2 e scegliere Aggiungi.
Trascinare il nodo Orders principale dalla finestra Origini dati a Form2.
In Form2 vengono visualizzati un oggetto DataGridView e un controllo Toolstrip (BindingNavigator) per lo spostamento all'interno dei record. Nella barra dei componenti vengono visualizzati gli oggetti NorthwindDataSet, CustomersTableAdapter, BindingSource e BindingNavigator.
Eliminare l'oggetto OrdersBindingNavigator dalla barra dei componenti.
OrdersBindingNavigator scompare da Form2.
Aggiunta di una query TableAdapter a Form2 per caricare gli ordini del cliente selezionato nel Form1
Per creare una query TableAdapter
Fare doppio clic sul file NorthwindDataSet.xsd in Esplora soluzioni.
Fare clic con il pulsante destro del mouse su OrdersTableAdapter e selezionare Aggiungi query.
Lasciare l'opzione predefinita di Usa istruzioni SQL e scegliere Avanti.
Lasciare l'opzione predefinita di SELECT che restituisce righe e scegliere Avanti.
Aggiungere una clausola WHERE alla query per restituire gli Orders in base al CustomerID. La query dovrebbe essere simile alla seguente:
SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Nota
Verificare che la sintassi dei parametri sia corretta per il database.In Microsoft Access, ad esempio, la clausola WHERE presenta la seguente sintassi: WHERE CustomerID = ?.
Scegliere Avanti.
Nel campo Nome metodo relativo a Riempi un DataTable, digitare FillByCustomerID.
Deselezionare l'opzione Restituisci una DataTable, quindi scegliere Avanti.
Scegliere Fine.
Creazione di un metodo su Form2 al quale passare i dati
Per creare un metodo al quale passare i dati
Fare clic con il pulsante destro del mouse su Form2 e selezionare Visualizza codice per aprire Form2 nell'editor di codice.
Aggiungere il codice riportato di seguito a Form2 dopo il metodo Form2_Load:
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Creazione di un metodo su Form1 per il passaggio dei dati e la visualizzazione di Form2
Per creare un metodo per il passaggio dei dati a Form2
In Form1 fare clic con il pulsante destro del mouse sulla griglia dati del cliente, quindi scegliere Proprietà.
Nella finestra Proprietà fare clic su Eventi.
Fare doppio clic sull'evento CellDoubleClick.
Verrà visualizzato l'editor del codice.
Aggiornare la definizione del metodo in modo che corrisponda all'esempio seguente:
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
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(); }
Esecuzione dell'applicazione
Per eseguire l'applicazione
Premere F5 per eseguire l'applicazione.
Fare doppio clic sul record di un cliente in Form1 per aprire Form2 e visualizzare gli ordini di quel cliente.
Passaggi successivi
A seconda dei requisiti dell'applicazione, si potranno eseguire diverse operazioni una volta passati i dati da un form all'altro. È possibile apportare alcuni miglioramenti a questa procedura dettagliata, tra cui:
Modifica del set di dati per aggiungere o rimuovere oggetti di database. Per altre informazioni, vedere Procedura: modificare un dataset.
Aggiunta di funzionalità per il salvataggio dei dati nel database. Per altre informazioni, vedere Procedura: salvare le modifiche di un dataset in un database.
Vedere anche
Concetti
Associazione di controlli Windows Form ai dati in Visual Studio
Cenni preliminari sulle origini dati
Cenni preliminari sugli oggetti TableAdapter
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Associazione di controlli ai dati in Visual Studio
Modifica di dati nell'applicazione