Condividi tramite


Passare dati tra moduli

Annotazioni

La DataSet classe e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le app vengono disconnesse dal database. Le tecnologie sono particolarmente utili per le app che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Sebbene i set di dati siano una tecnologia di successo comprovata, l'approccio consigliato per le nuove applicazioni .NET consiste nell'usare Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e dispone di un'interfaccia di programmazione più semplice.

Questa esercitazione fornisce istruzioni dettagliate per il passaggio di dati da un modulo a un altro. Usando le tabelle Customers and Orders del database di esempio Northwind, un modulo consente agli utenti di selezionare un cliente e un secondo modulo visualizza gli ordini del cliente selezionato. Questa esercitazione illustra come creare un metodo nel secondo modulo che riceve i dati dal primo modulo.

In questa esercitazione vengono completate le attività seguenti:

  • Creare un nuovo progetto app Windows Forms (.NET Framework).
  • Creare e configurare un dataset usando il Data Source Configuration Wizard.
  • Selezionare il controllo da creare nel modulo quando si trascinano gli elementi dalla finestra Origini dati . Per altre informazioni, vedere Impostare il controllo da creare durante il trascinamento dalla finestra Origini dati.
  • Creare un controllo associato a dati trascinando gli elementi dalla finestra Origini dati su un form.
  • Creare un secondo modulo con una griglia che visualizza i dati.
  • Creare una TableAdapter query per recuperare gli ordini per un cliente specifico.
  • Passare dati tra moduli.

Annotazioni

Questa esercitazione illustra un solo modo per passare i dati tra moduli. Sono disponibili altre opzioni per il passaggio di dati a un modulo, ad esempio la creazione di un secondo costruttore per la ricezione di dati o la creazione di una proprietà pubblica che può essere impostata con i dati del primo modulo.

Prerequisiti

  • Carichi di lavoro di sviluppo e elaborazione dei dati per desktop .NET installati in Visual Studio. Per installarli, aprire Il programma di installazione di Visual Studio e scegliere Modifica o Altro>modifica accanto alla versione di Visual Studio che si vuole usare. Per altre informazioni, vedere Modificare Visual Studio.

  • SQL Server Express 2019 LocalDB installato dalla pagina di download di SQL Server o tramite il programma di installazione di Visual Studio come parte del carico di lavoro Archiviazione ed elaborazione dei dati .

  • Il database di esempio Northwind, creato seguendo questa procedura:

    1. In Visual Studio aprire la finestra Esplora oggetti di SQL Server selezionandola dal menu Visualizza . Object Explorer di SQL Server viene installato come parte del carico di lavoro Archiviazione dati ed elaborazione.

    2. Espandere il nodo SQL Server , fare clic con il pulsante destro del mouse sull'istanza di LocalDB e scegliere Nuova query per aprire una finestra dell'editor di query.

    3. Copia lo script Northwind Transact-SQL negli Appunti. Questo script T-SQL crea il database Northwind e lo popola con i dati.

    4. Incollare lo script T-SQL nell'editor di query e quindi selezionare Esegui nella parte superiore della finestra per creare il database Northwind.

Creare il progetto dell'app Windows Form

  1. In Visual Studio scegliere Nuovo> dal menu File.

  2. Selezionare C# o Visual Basic dall'elenco a discesa Tutti i linguaggi , Windows dall'elenco a discesa Tutte le piattaforme e Desktop dall'elenco Tutti i tipi di progetto .

  3. Selezionare App Windows Forms (.NET Framework) dall'elenco dei modelli di progetto e quindi selezionare Avanti.

  4. Assegnare al progetto il nome PassingDataBetweenForms, selezionare Avanti e quindi selezionare Crea.

Il progetto PassingDataBetweenForms viene creato e aggiunto a Esplora soluzioni. La visualizzazione della finestra di progettazione di Form1 viene visualizzata nell'editor.

Creare l'origine dati

  1. Aprire la finestra Origini dati selezionando Progetto>Aggiungi nuova origine dati dal menu di Visual Studio.

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

  3. Nella pagina Scegliere un tipo di origine dati selezionare Database e quindi avanti.

  4. Nella pagina Scegliere un modello di database verificare che set di dati sia specificato e selezionare Avanti.

  5. Nella pagina Scelta connessione dati , se è già disponibile una connessione dati al database di esempio Northwind, selezionarla e procedere con il passaggio Scegliere gli oggetti di database . In caso contrario, selezionare Nuova connessione.

  6. Nella schermata Scegli origine dati selezionare File di database di Microsoft SQL Server e quindi selezionare Continua.

  7. Nella schermata Aggiungi connessione selezionare Sfoglia, passare a e selezionare il file northwnd.mdf e selezionare Apri.

  8. Selezionare Autenticazione di Windows oppure selezionare Autenticazione di SQL Server e specificare un nome utente e una password per accedere al database.

  9. Selezionare Test connessione per testare la connessione. Quando la connessione ha esito positivo, selezionare OK.

  10. Nella pagina Scegli connessione dati verificare che il file di database sia visualizzato e selezionare Avanti.

  11. Seleziona No alla domanda nel popup Vuoi copiare il file nel progetto e modificare la connessione?

  12. Nella pagina Salva la stringa di connessione nel file di configurazione dell'applicazione selezionare . Assegnare alla connessione il nome NorthwindConnectionString e quindi selezionare Avanti.

  13. Nella pagina Scegliere gli oggetti di database espandere il nodo Tabelle , selezionare le tabelle Clienti e Ordini , denominare il set di dati NorthwindDataSet e quindi selezionare Fine.

Il NorthwindDataSet viene aggiunto al progetto e le tabelle Customers and Orders vengono visualizzate nella finestra Origini dati .

Popolare il primo modulo

Creare il secondo modulo

Creare un secondo modulo a cui passare i dati.

  1. Scegliere Aggiungi modulo (Windows Form) dal menu Progetto.

  2. Lasciare il nome predefinito di Form2 e selezionare Aggiungi.

  3. Trascinare il nodo Ordini principale dalla finestra Origini dati in Form2.

    Una DataGridView e una BindingNavigator barra degli strumenti per lo spostamento dei record vengono visualizzate in Form2. Un oggetto NorthwindDataSet, CustomersTableAdapter, BindingSourcee BindingNavigator viene visualizzato nella barra dei componenti.

  4. Eliminare OrdersBindingNavigator dalla barra dei componenti. BindingNavigator scompare da Form2.

Aggiungere una query di TableAdapter

Aggiungere una TableAdapter query a Form2 che carica gli ordini per il cliente selezionato in Form1.

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

  2. Fare clic con il pulsante destro del mouse su OrdersTableAdapter nella tabella Orders e scegliere Aggiungi>query.

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

  4. Lasciare l'opzione predefinita SELECT che restituisce le righe e selezionare Avanti.

  5. In Dati che devono essere caricati dalla tabella, per restituire Orders in base a CustomerID, aggiungere una WHERE clausola alla fine della query. La query finale dovrebbe essere simile al codice seguente:

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

    Annotazioni

    Usare la sintassi dei parametri corretta per il database. Ad esempio, in Microsoft Access, la clausola WHERE sarebbe simile a WHERE CustomerID = ?.

  6. Seleziona Avanti.

  7. Nella schermata Scegli metodi da generare selezionare Fill a DataTable e immettere FillByCustomerID.

  8. Deselezionare l'opzione Restituisci una tabella dati e quindi selezionare Fine.

Creare un metodo in Form2 per passare i dati a

  1. Fare clic con il pulsante destro del mouse in Form2 e scegliere Visualizza codice per aprire il codice Form2 nell'editor.

  2. Nel codice Form2 rimuovere il contenuto del Form2_Load metodo e aggiungere il codice seguente dopo il Form2_Load metodo :

internal void LoadOrders(String CustomerID)
{
    ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
}

Creare un metodo in Form1 per passare i dati e visualizzare Form2

  1. Nella visualizzazione Progettazione di Form1 fare clic con il pulsante destro del mouse sulla griglia Dati cliente e quindi scegliere Proprietà.

  2. Nella finestra Proprietà selezionare l'icona Eventi nella barra degli strumenti superiore.

  3. Fare doppio clic sull'evento DoubleClick per aprire l'editor di codice.

  4. Nell'editor di codice aggiornare la definizione del metodo in modo che corrisponda all'esempio seguente:

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

Eseguire e testare l'app

  1. Premere F5 per eseguire l'applicazione.

  2. Nell'applicazione fare doppio clic su un record cliente in Form1 per aprire Form2 con gli ordini del cliente.

Passaggi successivi

A seconda dei requisiti dell'applicazione, è possibile eseguire diversi passaggi dopo aver passato i dati tra i moduli. Alcuni miglioramenti che è possibile apportare a questa esercitazione includono: