Testato con Visual Basic 2010

La gestione delle ComboBox a volte può risultare difficile, per il fatto che in un unico oggetto che normalmente ci visualizza una sola colonna, ne dobbiamo gestire almeno due. Solitamente l'ID del record che usiamo per la gestione dei dati e un campo descrittivo che facciamo vedere all'utente.
In VB.NET è molto semplice gestire queste situazioni, supponendo di avere già una tabella in un DataBase e di voler popolare la Comobox con i dati della tabella, ci basterà creare un DataAdapter per leggere i dati i quali verranno associati ad un DataSet. Creato il DataSet, ci basterà creare l'associazione.

Di seguito un esempio del codice:

Dim SQL AS String
Dim RS AS new oledb.RecordSet
Dim DA AS new oledb.DataAdapter
Dim DS AS new DataSet

'Apro la connesione al DataBase
### Stringa di Connessione al DataBase ###

'Dichiaro la stringa SQL
SQL = "SELECT idRiga, Descrizione FROM Tabella;"

'Apro il RecordSet
RS.open(SQL, NomeConnessione)

'Associo i dati al DataSet
DA.Fill(RS, DS, "MioDataSet")

'Associo il DataSet alla combo
MiaCombo.DataSource = DS.Tables("MioDataSet")
MiaCombo.DisplayMember = "Descrizione"
MiaCombo.ValueMember = "IdRiga"

'Chiudo il RecordSet e la connessione
RS.close
RS = Nothing
###Stringa di chiusura della connessione###

____________________________________________________________

Quando devo andare a leggere i valori della combo selezionata:

TextBox1.Text = MiaCombo.SelectedItem("Descrizione")
TextBox2.Text = MiaCombo.SelectValue.ToString