Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
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.
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.
Copia lo script Northwind Transact-SQL negli Appunti. Questo script T-SQL crea il database Northwind e lo popola con i dati.
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
In Visual Studio scegliere Nuovo> dal menu File.
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 .
Selezionare App Windows Forms (.NET Framework) dall'elenco dei modelli di progetto e quindi selezionare Avanti.
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
Aprire la finestra Origini dati selezionando Progetto>Aggiungi nuova origine dati dal menu di Visual Studio.
Nella finestra Origini dati selezionare Aggiungi nuova origine dati per avviare la configurazione guidata origine dati .
Nella pagina Scegliere un tipo di origine dati selezionare Database e quindi avanti.
Nella pagina Scegliere un modello di database verificare che set di dati sia specificato e selezionare Avanti.
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.
Nella schermata Scegli origine dati selezionare File di database di Microsoft SQL Server e quindi selezionare Continua.
Nella schermata Aggiungi connessione selezionare Sfoglia, passare a e selezionare il file northwnd.mdf e selezionare Apri.
Selezionare Autenticazione di Windows oppure selezionare Autenticazione di SQL Server e specificare un nome utente e una password per accedere al database.
Selezionare Test connessione per testare la connessione. Quando la connessione ha esito positivo, selezionare OK.
Nella pagina Scegli connessione dati verificare che il file di database sia visualizzato e selezionare Avanti.
Seleziona No alla domanda nel popup Vuoi copiare il file nel progetto e modificare la connessione?
Nella pagina Salva la stringa di connessione nel file di configurazione dell'applicazione selezionare Sì. Assegnare alla connessione il nome NorthwindConnectionString e quindi selezionare Avanti.
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
Per creare una griglia associata a dati, trascinare il nodo Customers dalla finestra Origini dati in Form1.
Un DataGridView controllo e una BindingNavigator striscia di strumenti per lo spostamento dei record vengono visualizzati in Form1. Un oggetto NorthwindDataSet,
CustomersTableAdapter
, BindingSourcee BindingNavigator viene visualizzato nella barra dei componenti.
Creare il secondo modulo
Creare un secondo modulo a cui passare i dati.
Scegliere Aggiungi modulo (Windows Form) dal menu Progetto.
Lasciare il nome predefinito di Form2 e selezionare Aggiungi.
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.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.
Fare doppio clic sul file NorthwindDataSet.xsd in Esplora soluzioni.
Fare clic con il pulsante destro del mouse su OrdersTableAdapter nella tabella Orders e scegliere Aggiungi>query.
Lasciare l'opzione predefinita Usa istruzioni SQL e selezionare Avanti.
Lasciare l'opzione predefinita SELECT che restituisce le righe e selezionare Avanti.
In Dati che devono essere caricati dalla tabella, per restituire
Orders
in base aCustomerID
, aggiungere unaWHERE
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 aWHERE CustomerID = ?
.Seleziona Avanti.
Nella schermata Scegli metodi da generare selezionare Fill a DataTable e immettere FillByCustomerID.
Deselezionare l'opzione Restituisci una tabella dati e quindi selezionare Fine.
Creare un metodo in Form2 per passare i dati a
Fare clic con il pulsante destro del mouse in Form2 e scegliere Visualizza codice per aprire il codice Form2 nell'editor.
Nel codice Form2 rimuovere il contenuto del
Form2_Load
metodo e aggiungere il codice seguente dopo ilForm2_Load
metodo :
internal void LoadOrders(String CustomerID)
{
ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
}
Creare un metodo in Form1 per passare i dati e visualizzare Form2
Nella visualizzazione Progettazione di Form1 fare clic con il pulsante destro del mouse sulla griglia Dati cliente e quindi scegliere Proprietà.
Nella finestra Proprietà selezionare l'icona Eventi nella barra degli strumenti superiore.
Fare doppio clic sull'evento DoubleClick per aprire l'editor di codice.
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
Premere F5 per eseguire l'applicazione.
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:
Modifica del set di dati per aggiungere o rimuovere oggetti di database. Per altre informazioni, vedere Creare e configurare set di dati.
Aggiunta di funzionalità per salvare nuovamente i dati nel database. Per altre informazioni, vedere Salvare nuovamente i dati nel database.