Procedura dettagliata: passaggio di dati tra i form in un'applicazione Windows
Aggiornamento: novembre 2007
In questa procedura dettagliata vengono fornite istruzioni passo-passo per il passaggio dei dati da un form a un altro. Utilizzando le tabelle relative a clienti e ordini del database Northwind, un form consentirà agli utenti di selezionare un cliente, mentre nell'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: |
---|
In questa procedura dettagliata viene illustrato 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. |
Di seguito sono elencate le attività illustrate nella procedura dettagliata:
Creazione di un nuovo progetto Applicazione Windows.
Creazione e configurazione di un dataset mediante la Configurazione guidata origine dati.
Selezione del controllo da creare sul form durante il trascinamento degli elementi dalla finestra Origini dati. Per ulteriori 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 disporre dei seguenti elementi:
- Accedere al database di esempio Northwind. Per ulteriori 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 e scegliere OK. Per ulteriori informazioni, vedere Creazione di applicazioni per Windows.
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 Seleziona un tipo di origine dati, quindi scegliere Avanti.
Nella pagina Seleziona connessione dati effettuare una delle seguenti operazioni:
Selezionare l'eventuale connessione dati al database di esempio Northwind presente nell'elenco a discesa.
- oppure -
Selezionare Nuova connessione per aprire la finestra di dialogo Aggiungi/Modifica connessione. Per ulteriori informazioni, vedere Finestra di dialogo Aggiungi/Modifica connessione (generale).
Se il database in uso richiede una password e l'opzione che consente di includere dati riservati è abilitata, selezionare l'opzione e scegliere Avanti.
Scegliere Avanti nella pagina Salva la stringa di connessione nel file di configurazione dell'applicazione.
Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.
Selezionare le tabelle Customers e Orders, quindi scegliere Fine.
Il dataset 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 a Form1.
Su 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, CustomersTableAdapterBindingSource 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.
Su 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, CustomersTableAdapterBindingSource 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 a quella riportata di seguito:
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.
Sostituire il metodo Form2_Load aggiunto automaticamente al form con il codice seguente:
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
Fare clic con il pulsante destro del mouse su Form1 e selezionare Visualizza codice per aprire Form1 nell'editor di codice.
Aggiungere il seguente codice in Form1 sotto al metodo 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(); }
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 dataset per aggiungere o rimuovere oggetti di database. Per ulteriori informazioni, vedere Procedura: modificare un dataset.
Aggiunta di funzionalità per il salvataggio dei dati nel database. Per ulteriori informazioni, vedere Procedura: salvare le modifiche di un dataset in un database.
Vedere anche
Concetti
Cenni preliminari sulla visualizzazione dei dati
Cenni preliminari sulle origini dati
Cenni preliminari sugli oggetti TableAdapter
Altre risorse
Procedure dettagliate relative ai dati
Connessione ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Visualizzazione di dati su form nelle applicazioni Windows