Popolare checkedListBox

giovedì 16 aprile 2009 - 12.10

FedericoC Profilo | Junior Member

Ciao,

Ho creato un oggetto personalizzato che dovrei inserire detro una checkedListBox, purtroppo però non so quanti oggetit dovrò creare, perchè saranno dati da una query sql a runtime, voelvo sapere quale metodo mi consigliavate per popolare la mia checkedListBox... (250-300 oggetti come minimo saranno presenti ogni volta...)


Grazie

luxsor Profilo | Guru

Ciao Federico,
non so se il tuo progetto richiede espressamente il controllo CheckBoxList, ma ti sconsiglio di usarlo su tutti quei elementi.

Purtroppo i soli controli in grado di gestire centinaia e addirittura migliaia di dati sono DataGridView, BlindingNavigator ecc..

Ti consiglio di fare una prova, perchè i problemi di caricamento e visualizzazione li riscontrerai su PC nemo potenti.

Fammi sapere




WilOhmsford Profilo | Newbie

Ciao,
puoi usare un SqlDataReader: in un ciclo while che si interrompe solo quando non ci sono più record da leggere inserisci le istruzioni per popolare il CheckedListBox; esempio:

while (nomeDataReader.Read()) { nomeCheckedListBox.Items.Add(nomeVoceDiElenco); }

Non so però, come suggerito da luxsor, se con grossi quantitativi di dati ciò possa originare rallentamenti. L'unica è fare una prova. Facci sapere

luxsor Profilo | Guru

Scusami non avevo capito che ti serva il codice per popolare il controllo.
Questo codice di estrae il valore dal Db tramite SQLDataReader e ti popola il CheckListBox

Dim myDataReader As SqlDataReader
Dim DBConn As SqlConnection
Dim mySQLDbCommand As SqlCommand

DBConn = New SqlConnection("inserisci la stringa di connessione al tuo DB")
DBConn.Open()

Dim sql As String
sql = "la tua query di estrazione hai dati"

If ApriDB() = False Then
Exit Function
End If

mySQLDbCommand = New SqlCommand(sql, DBConn)
myDataReader = mySQLDbCommand.ExecuteReader

CheckedBoxList.Items.Clear()


Do While myDataReader.Read = True
Dim Valore As String = ""
If (myDataReader.IsDBNull("campo DB").ToString) = False Then
Valore = myDataReader.GetString("campo DB")
If Trim(Valore) <> "" Then
CheckedBoxList4.Items.Add(Valore)
End If

End If

Loop
myDataReader.Close()
DBConn.Close()

PS: Ti presente del primo post.
Per la stringa di connessione guarda qua:
http://www.connectionstrings.com/

Facci sapere

FedericoC Profilo | Junior Member

Allora inserisco un datagrid a questo punto, cosi evito anche di creare vari oggetti...

Cmq volevo sapere se potevo inserire dentor la listview o combobox che sia degli oggetti personalizzati, in cui l'end-user vede la scritta ed io quando vado ad estrarlo posso farci varie operazioni o recuperarci alrtri dati...

PEr fare questo devo sovrascrivere il metodo tostring? mi ricorod che si poteva fare in qualche modo ma non riesco a ritrovare quella funzione...
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