[VB.NET] combo.valuemember

venerdì 30 ottobre 2009 - 18.39

cypher Profilo | Junior Member

avrei una combo da popolare con i campi di una tabella di un db.
cercando in giro sono arrivato alla seguente soluzione

Dim sql As String = "SELECT * FROM TipoIdentita" Dim da As New OleDbDataAdapter(sql, conn) Dim dt As New DataTable da.Fill(dt) cmb_documento.DataSource = dt cmb_documento.DisplayMember = "Tipo" cmb_documento.ValueMember="id"

il problema è che come value member per ognuno mi da prorprio la stringa 'id' anziche il valore associaoto.

come faccio a fare in modo che ad ogni displaymember mi associ il relativo id'?

se c'è bisogno la tabella è fatta da 2 colonne : id, tipo

altra domanda. se io ho una tabella con id, nome, cognome e volessi mettere come valuemember=id e displaymember=cognome+nome come faccio??

freeteo Profilo | Guru

>il problema è che come value member per ognuno mi da prorprio
>la stringa 'id' anziche il valore associaoto.
certo, quella proprietà serve per il combo per sapere che campo della sua datasource visualizzare come "SelectedValue" proprietà che devi usare per sapere che cosa l'utente ti ha scelto.
Quello che ti torna in quella proprietà sarà proprio l'id corretto.


>come faccio a fare in modo che ad ogni displaymember mi associ
>il relativo id'?
come "displayMember" ? quello serve per visualizzare un valore che possa essere d'aiuto all'utente nella scelta dell'elemento, poi tu ti recuperi la proprietà che ti serve dal "valueMember" per il tuo programma.

Es:
campi = id,descrizione
valuemember = "id"
displaymember = "descrizione"
l'utente vede le descrizioni come elementi della combo, quando ti serve tu recuperi quello che ha scelto, ma l'id, usando la proprietà "combo.SelectedValue"



>altra domanda. se io ho una tabella con id, nome, cognome e volessi
>mettere come valuemember=id e displaymember=cognome+nome come
>faccio??
la cosa più semplice è farti tornare un campo calcolato dalla query, e visualizzare quello:
SELECT *,nome + ' ' + cognome as descrizione FROM ...
combo.ValueMember = "id"
combo.DisplayMember = "descrizione"
l'utente a quel punto vede una stringa composita dai 2 campi (più lo spazio in mezzo) e poi cmq tu usi l'id che ti ha scelto come dicevo prima...
Ciao.

Matteo Raumer
[MCAD, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

cypher Profilo | Junior Member

grandissimo funziona tutto alla perfezione grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5