Metodi per riempire una serie di combobox con una query

sabato 17 aprile 2010 - 17.01

nikkysixx Profilo | Junior Member

Ciao a tutti,sono alle prese con un problema di complessita'computazionale :D
In pratica per effettuare il riempimento di una serie di combobox (nel mio caso 15) prendendo come sorgente una query conosco due modi disponibili

Cio'che non capisco è come sia possibile che nel secondo caso,il programma abbia un ritardo di alcuni secondi nel riempire le combo,mentre col primo sia piu veloce

La domanda è come implementare il metodo 1 via codice e senza wizard? e sopratutto esiste un metodo piu veloce?

Ecco i due metodi
1)usando il wizard,trascino una combobox,seleziono Usa Elementi Associati ai Dati -> Origine Dati -> TabellaBindingSource ,e questo per ogni combobox, il che crea 15 binding source in quanto i dati devono essere inseriti indipendentemente

2)Uso un sqldatareader per scandire la tabella,prelevare il valore e riempire le combobox
Dim conn As SqlConnection = New SqlConnection(con_string) conn.Open() Dim riempi_combo As SqlCommand = New SqlCommand("select * from tabella", conn) Dim reader As SqlDataReader = riempi_combo.ExecuteReader() If reader.HasRows Then While reader.Read() combo1.Items.Add(reader.Item(0).ToString) combo2.Items.Add(reader.Item(0).ToString) combo3.Items.Add(reader.Item(0).ToString) combo4.Items.Add(reader.Item(0).ToString) combo5.Items.Add(reader.Item(0).ToString) combo6.Items.Add(reader.Item(0).ToString) combo7.Items.Add(reader.Item(0).ToString) combo8.Items.Add(reader.Item(0).ToString) combo9.Items.Add(reader.Item(0).ToString) combo10.Items.Add(reader.Item(0).ToString) combo11.Items.Add(reader.Item(0).ToString) combo12.Items.Add(reader.Item(0).ToString) combo13.Items.Add(reader.Item(0).ToString) combo14.Items.Add(reader.Item(0).ToString) combo15.Items.Add(reader.Item(0).ToString) End While End If conn.Close() conn.Dispose()

Cimperiali Profilo | Newbie

ma scusa, tutte e quindici le combo hanno gli stessi valori?

nikkysixx Profilo | Junior Member

Si ma è da raffinare la cosa,per ora vale solo come esempio,cmq mi hanno suggerito di utilizzare un unica sorgente x tutte le combobox

Cimperiali Profilo | Newbie

le combo accettano come "datasource" anche liste. Puoi provare con Linq a farti dare una lista di elementi della Tabella che ti interessa (prendi solo i due campi che ti servono per la combo: la key [=DataValueField] e il testo da mostrare [DataTextField])

nikkysixx Profilo | Junior Member

Non avevo pensato alle liste, ci lavoro su,grazie
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5