Procedura: creare una tabella di ricerca per un controllo ComboBox, ListBox o CheckedListBox Windows Form

Può risultare utile visualizzare i dati all'interno di un Windows Form in un formato facilmente riconoscibile dall'utente, ma memorizzare gli stessi dati in un formato che consenta una migliore gestione da parte del programma. Ad esempio un form di ordinazione per generi alimentari può visualizzare le voci di menu ordinate in base al nome in una casella di riepilogo, mentre la tabella dati per la registrazione dell'ordine può contenere i numeri univoci di identificazione corrispondenti a ogni piatto. Nelle tabelle seguenti viene mostrato un esempio di memorizzazione e visualizzazione dei dati contenuti in un form di ordinazione per generi alimentari.

OrderDetailsTable

OrderID ItemID Quantity
4085 12 1
4086 13 3

ItemTable

ID Nome
12 Patate
13 Pollo

In questo scenario, una tabella, OrderDetailsTable, archivia le informazioni effettive relative alla visualizzazione e al salvataggio. Per risparmiare spazio, però, la memorizzazione avviene in modo piuttosto criptico. L'altra tabella, ItemTable, contiene solo informazioni relative all'aspetto relative al numero ID equivalente al nome del cibo e nulla sugli ordini alimentari effettivi.

ItemTable è connesso al ComboBoxcontrollo , ListBoxo CheckedListBox tramite tre proprietà. La DataSource proprietà contiene il nome della tabella. La DisplayMember proprietà contiene la colonna di dati della tabella che si desidera visualizzare nel controllo (il nome del cibo). La ValueMember proprietà contiene la colonna di dati della tabella con le informazioni archiviate (il numero ID).

OrderDetailsTable è connesso al controllo tramite l'insieme binding, accessibile tramite la DataBindings proprietà . Quando si aggiunge un oggetto binding all'insieme, si connette una proprietà di controllo a un membro dati specifico (la colonna dei numeri ID) in un'origine dati (OrderDetailsTable). Quando nel controllo viene effettuata una selezione, l'input del form viene salvato in questa tabella.

Per creare una tabella di ricerca

  1. Aggiungere un controllo ComboBox, ListBox o CheckedListBox al form.

  2. Effettuare la connessione all'origine dati.

  3. Stabilire una relazione dati tra le due tabelle. Vedere Introduzione agli oggetti DataRelation.

  4. Imposta le proprietà seguenti. nel codice o nella finestra di progettazione.

    Proprietà Impostazione
    DataSource Nella tabella sono contenute le informazioni relative ai numeri ID equivalenti alle diverse voci. Nello scenario precedente si tratta di ItemTable.
    DisplayMember La colonna della tabella dell'origine dati che si vuole visualizzare nel controllo. Nello scenario precedente si tratta "Name" di (per impostare nel codice, usare le virgolette).
    ValueMember La colonna della tabella di origine dati che contiene le informazioni memorizzate. Nello scenario precedente si tratta "ID" di (per impostare nel codice, usare le virgolette).
  5. In una routine, chiamare il metodo Add della classe ControlBindingsCollection per associare la proprietà SelectedValue del controllo alla tabella che registra l'input del form. È anche possibile eseguire questa operazione in Progettazione anziché nel codice accedendo alla proprietà del DataBindings controllo nella finestra Proprietà . Nello scenario precedente si tratta di OrderDetailsTablee la colonna è "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")  
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");  
    

Vedi anche