Logo UGIdotNET

Discussione 'Popolare una combobox'

# Pubblicato il 28 apr 2003 10.32 - Rispondi
Mauro Mungo
Popolare una combobox
Ciao a tutti, volevo sapere come si popola una combobox, qualcuno può farmi un esempio?
Il DB che utilizzo è un DB Access.

Grazie
# Pubblicato il 28 apr 2003 10.48 - Rispondi
Ste Dev
Re: Popolare una combobox
Mi sembra di dedurre da "combobox" che si tratti di una windowsform:
DataSet ds = new DataSet();
sqlDataAdapter1.Fill(ds, YourTableName);
comboBox1.DataSource = ds.Tables[0];
comboBox1.DisplayMember = YourField;
Funziona ora ??
# Pubblicato il 28 apr 2003 11.24 - Rispondi
Mauro Mungo
Re: Popolare una combobox
Si è una windows form.

Module ConnStrings

' The connection string for biblio.mdb (using OLE DB provider)
Public AccessConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=..\DB.mdb;"

Avevo trovato questo codice di esempio sul msdn :

Public Sub ReadMyData(ByVal myConnString As String)
Dim mySelectQuery As String = "SELECT COMUNI FROM DB"
Dim myConnection As New OleDbConnection(myConnString)
Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
myConnection.Open()
Dim myReader As OleDbDataReader
myReader = myCommand.ExecuteReader() ***********************
' Always call Read before accessing data.
While myReader.Read()
Console.WriteLine(myReader.GetInt32(0).ToString() + ", " _
+ myReader.GetString(1))
End While
' always call Close when done reading.
myReader.Close()
' Close the connection when done with it.
myConnection.Close()
End Sub

End Module


Ma ottengo un'errore nella riga con gli asterischi.

Eccezione non gestita di tipo "System.Data.OleDb.OleDbException" in system.data.dll

Grazie, siccome sono alle prime armi con i db mi puoi spiegare esattamente cosa fa il codice che mi hai postato?

# Pubblicato il 28 apr 2003 11.34 - Rispondi
Ste Dev
Re: Popolare una combobox
1) DataSet ds = new DataSet();
Creo un istanza della classe DataSet, che viene utilizzata per contenere i record proveneienti dalla tua tabella; questo oggetto è "disconnesso" ovverso una volta recuperati i dati dal database, la connessione non esiste più.
2) sqlDataAdapter1.Fill(ds, YourTableName);
Questo oggetto come vedi non è dichiarato, in realtà per ottenerlo ho trascinato da "ServerExplorer" la tabella che intendevo gestire e Visual Studio ha dichiarato per me un oggetto di questo tipo; il metodo FILL della classe DataAdapter (SqlDataAdapter o OledbDataAdapter per MS Access), recupera i dati dal database e li inserisce nel dataset "DS" che gli passo al metodo.
3)
comboBox1.DataSource = ds.Tables[0];
comboBox1.DisplayMember = YourField;
Con questo codice faccio il "binding" dei dati sul controllo ComboBox ovvero dico al controllo cosa visualizzare.
Se hai dubbi posta pure....
# Pubblicato il 28 apr 2003 11.39 - Rispondi
Mauro Mungo
Re: Popolare una combobox
Grazie risolto.
# Pubblicato il 28 apr 2003 11.41 - Rispondi
Ste Dev
Re: Popolare una combobox
Quale era il problema ? Hai usato il DataSet ?
# Pubblicato il 28 apr 2003 14.12 - Rispondi
Mauro Mungo
Re: Popolare una combobox
Mi vergogno a dirlo, avevo digitato male la stringa di connessione. :(

Grazie del tuo aiuto.

Ti chiedo un'altra cosa, come posso fare un routine che autocompleta la comboBox ?
# Pubblicato il 28 apr 2003 14.19 - Rispondi
Ste Dev
Re: Popolare una combobox
Cosa intendi per "autocompleta la comboBox" ?
# Pubblicato il 28 apr 2003 15.24 - Rispondi
Lawrence Oluyede
Re: Popolare una combobox
>
> Ti chiedo un'altra cosa, come posso fare un routine che autocompleta la comboBox ?
>

Intendi la possibilità di avere la combobox riempita all'avvio? Metti il codice nell'evento
OnLoad
# Pubblicato il 29 apr 2003 11.40 - Rispondi
Ste Dev
Re: Popolare una combobox
Rispondo qui perchè non mi fa + inserire post !
Ecco il codice VB.NET
Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
Dim cb As ComboBox
cb = DirectCast(sender, ComboBox)
Dim index As Integer
index = cb.FindString(cb.Text)
cb.SelectedIndex = index
End Sub
# Pubblicato il 28 apr 2003 22.24 - Rispondi
Mauro Mungo
Re: Popolare una combobox
Hai presente quando scrivi in word che ti propone delle parole simili ho già scritte.
# Pubblicato il 28 apr 2003 22.55 - Rispondi
Lawrence Oluyede
Re: Popolare una combobox
on 28. Apr 2003 22:24 Mauro Mungo wrote:
> Hai presente quando scrivi in word che ti propone delle parole simili ho già scritte.

Ah! tu intendi l'autocompletion? Non mi sembra che .NET di default la supporti ma il buon Chris Sells ha sviluppato qualcosa che potrebbe fare al caso tuo: Genghis :)

Questa l'introduzione: " Genghis is a set of extensions built on top of .NET and integrated with WinForms to provide application-level services in the same flavor as the Microsoft Foundation Classes. "

Tra le feature, la prima della lista è prio quella che serve a te: http://www.sellsbrothers.com/tools/genghis/screenshots/CompletionComboTest.JPG

Fammi sapere com'è che mi interessa :)

http://www.sellsbrothers.com/tools/genghis/
# Pubblicato il 29 apr 2003 8.56 - Rispondi
Ste Dev
Re: Popolare una combobox
Intercetta l'evento del combobox "TextChanged" e scrivi:
private void comboBox1_TextChanged(object sender, System.EventArgs e)
{
ComboBox cb = (ComboBox)sender;
int index = cb.FindString(cb.Text);
cb.SelectedIndex = index;
}
Fammi sapere
# Pubblicato il 29 apr 2003 11.25 - Rispondi
Mauro Mungo
Re: Popolare una combobox
Cia Stev, il codice postato è in c# a me serve in vb.net .

Grazie
# Pubblicato il 29 apr 2003 14.28 - Rispondi
Raffaele Rialdi
Re: Popolare una combobox
on 29. Apr 2003 22:55 Lawrence Oluyede wrote:
> Ah! tu intendi l'autocompletion? Non mi sembra che .NET di default la supporti ma il buon Chris Sells ha sviluppato qualcosa che
> potrebbe fare al caso tuo: Genghis :)

Ah, abbiamo un altro estimatore del grande Chris. Io ho anche una foto con lui ;-)

Raffaele
# Pubblicato il 29 apr 2003 14.18 - Rispondi
Mauro Mungo
Re: Popolare una combobox
Grazie dell'aiuto.
# Pubblicato il 29 apr 2003 14.41 - Rispondi
Lawrence Oluyede
Re: Popolare una combobox

Risposta per Raffaele (non so come mai ma non riesco a rispondere al suo messaggio):

Io per ora mi limito a seguire il suo blog :)

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185