Procedura: creare una tabella di ricerca con il componente BindingSource di Windows Form
Aggiornamento: novembre 2007
Una tabella di ricerca è una tabella di dati contenente una colonna in cui vengono visualizzati i dati dei record di una tabella correlata. Nelle procedure riportate di seguito viene utilizzato un controllo ComboBox per visualizzare il campo con la relazione di chiave esterna dalla tabella padre alla tabella figlio.
Per chiarire il concetto, di seguito è riportato un esempio con due tabelle padre e figlio e la loro relazione.
CustomersTable (tabella padre)
CustomerID |
CustomerName |
---|---|
712 |
Paul Koch |
713 |
Tamara Johnston |
OrdersTable (tabella figlio)
OrderID |
OrderDate |
CustomerID |
---|---|---|
903 |
12 febbraio 2004 |
712 |
904 |
13 febbraio 2004 |
713 |
In questo scenario, nella tabella CustomersTable sono memorizzate le informazioni che si desidera visualizzare e salvare. Tuttavia, per risparmiare spazio, la tabella non include dati aggiuntivi. Nella seconda tabella, OrdersTable, sono contenute solo informazioni relative al numero ID cliente equivalente a una data e a un ID ordine, ma non vengono citati i nomi dei clienti.
Nel controllo Controllo ComboBox (Windows Form) sono impostate quattro importanti proprietà per la creazione della tabella di ricerca.
La proprietà DataSource contiene il nome della tabella.
La proprietà DisplayMember contiene la colonna di dati della tabella da visualizzare come testo del controllo, ossia quella contenente i nomi dei clienti.
La proprietà ValueMember contiene la colonna di dati della tabella con le informazioni memorizzate, ossia il numero ID nella tabella padre.
La proprietà SelectedValue fornisce il valore di ricerca per la tabella figlio, in base alla proprietà ValueMember.
Le procedure riportate di seguito illustrano come definire il layout del form come una tabella di ricerca e associare i dati ai controlli del form. Per completare le procedure, è necessario disporre di un'origine dati con tabelle padre e figlio che contengano una relazione di chiave esterna, come menzionato precedentemente.
Per creare l'interfaccia utente
Dalla Casella degli strumenti trascinare un controllo ComboBox nel form.
Il controllo visualizzerà la colonna della tabella padre.
Trascinare altri controlli per visualizzare i dettagli contenuti nella tabella figlio. Il formato dei dati nella tabella determina quali controlli vengano scelti. Per ulteriori informazioni, vedere Controlli Windows Form per funzione.
Trascinare un controllo BindingNavigator nel form in modo da consentire lo spostamento tra i dati della tabella figlio.
Per connettersi ai dati e associarli ai controlli
Selezionare ComboBox e fare clic sull'icona Smart Task per visualizzare la finestra di dialogo Smart Task.
Selezionare Usa elementi associati ai dati.
Fare clic sulla freccia posta accanto alla casella di riepilogo a discesa Origine dati. Se per il progetto o il form è stata precedentemente configurata un'origine dati, verrà visualizzata tale origine dati, altrimenti completare i passaggi riportati di seguito in cui vengono utilizzate le tabelle Customers e Orders del database di esempio Northwind, indicate tra parentesi.
Fare clic su Aggiungi origine dati progetto per eseguire la connessione con i dati e creare un'origine dati.
Nella pagina iniziale della Configurazione guidata origine dati scegliere Avanti.
Selezionare Database nella pagina Seleziona un tipo di origine dati.
Selezionare una connessione dati dall'elenco di connessioni disponibili nella pagina Seleziona connessione dati. Se la connessione dati desiderata non è disponibile, selezionare Nuova connessione per creare una nuova connessione dati. Per ulteriori informazioni, vedere Finestra di dialogo Aggiungi/Modifica connessione (generale).
Scegliere Sì, salva la connessione con nome per salvare la stringa di connessione nel file di configurazione dell'applicazione.
Selezionare gli oggetti di database da inserire nell'applicazione. In questo caso, selezionare una tabella padre e una tabella figlio (ad esempio Customers e Orders) con una relazione di chiave esterna.
Se lo si desidera, sostituire il nome del DataSet predefinito.
Fare clic su Fine.
Nella casella di riepilogo a discesa Membro di visualizzazione selezionare il nome della colonna (ad esempio ContactName) da visualizzare nella casella combinata.
Nella casella di riepilogo a discesa Membro valore selezionare la colonna (ad esempio CustomerID) per l'operazione di ricerca nella tabella figlio.
Nella casella di riepilogo a discesa Valore selezionato spostarsi su Origini dati del progetto e sul DataSet appena creato che contiene le tabelle padre e figlio. Selezionare la proprietà della tabella figlio corrispondente al Membro valore della tabella padre (ad esempio Orders.CustomerID). Verranno creati e aggiunti al form i componenti BindingSource, DataSet e TableAdapter appropriati.
Associare il controllo BindingNavigator alla classe BindingSource della tabella figlio (ad esempio OrdersBindingSource).
Associare gli altri controlli diversi da ComboBox e BindingNavigator ai campi dei dettagli dalla classe BindingSource della tabella figlio (ad esempio OrdersBindingSource) da visualizzare.