Condividi tramite


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:

Creazione dell'applicazione Windows

Per creare il nuovo progetto Windows

  1. Scegliere il comando per la creazione di un nuovo progetto dal menu File.

  2. Assegnare al progetto il nome PassingDataBetweenForms.

  3. 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

  1. Scegliere Mostra origini dati dal menu Dati.

  2. Nella finestra Origini dati selezionare Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.

  3. Selezionare Database nella pagina Seleziona un tipo di origine dati, quindi scegliere Avanti.

  4. 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).

  5. Se il database in uso richiede una password e l'opzione che consente di includere dati riservati è abilitata, selezionare l'opzione e scegliere Avanti.

  6. Scegliere Avanti nella pagina Salva la stringa di connessione nel file di configurazione dell'applicazione.

  7. Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.

  8. 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

Creazione del secondo form (Form2)

Per creare un secondo form al quale passare i dati

  1. Scegliere Aggiungi Windows Form dal menu Progetto.

  2. Lasciare il nome predefinito Form2 e scegliere Aggiungi.

  3. 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.

  4. 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

  1. Fare doppio clic sul file NorthwindDataSet.xsd in Esplora soluzioni.

  2. Fare clic con il pulsante destro del mouse su OrdersTableAdapter e selezionare Aggiungi query.

  3. Lasciare l'opzione predefinita di Usa istruzioni SQL e scegliere Avanti.

  4. Lasciare l'opzione predefinita di SELECT che restituisce righe e scegliere Avanti.

  5. 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 = ?.

  6. Scegliere Avanti.

  7. Nel campo Nome metodo relativo a Riempi un DataTable, digitare FillByCustomerID.

  8. Deselezionare l'opzione Restituisci una DataTable, quindi scegliere Avanti.

  9. Scegliere Fine.

Creazione di un metodo su Form2 al quale passare i dati

Per creare un metodo al quale passare i dati

  1. Fare clic con il pulsante destro del mouse su Form2 e selezionare Visualizza codice per aprire Form2 nell'editor di codice.

  2. 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

  1. Fare clic con il pulsante destro del mouse su Form1 e selezionare Visualizza codice per aprire Form1 nell'editor di codice.

  2. 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:

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

Modifica di dati nell'applicazione

Convalida dei dati

Salvataggio di dati