Hello tout le monde,
J'ai besoin d'un binding dynamique depuis base de données pour remplir une combobox avec autocomplétion pour mon application.
Je m'explique: Je voudrai qu'au fur et à mesure que j'écris dans la combobox, celle-ci se mette à jour avec les possibilités liées à ce que j'ai écrit.
Pour cela:
Je créé ma liste essaiList et je l'initialise avec la méthode qui me permet de récupérer les infos de la base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 essaiList = new List<string>(GetCompletionList()); ultraComboEditor1.DataSource = essaiList;
Je bind ensuite cette liste avec ma comboBox.
Au démarrage de l'application, ça marche, ma liste est affichée.
En revanche, ma méthode GetCompletionList() est supposée requêter la base à partir de ce que j'écris dans ma combobox. Voici la méthode:
La liste est donc bindée sur quelquechose qui change et devrait donc a priori changer elle-même, seulement voilà, ça ne change pas.. Les noms dans ma comboBox restent les mêmes..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public List<string> GetCompletionList() { List<string> complList = new List<string>(); AseConnection conn = DbConnectionFactory.Instance.CreateSybaseAdoNetConnection(); AseCommand cmd = new AseCommand("SELECT nom, prn FROM table WHERE nom like '" + ultraComboEditor1.Text.ToUpper() + "%'", conn); conn.Open(); AseDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { complList.Add(reader["nom"].ToString() +", "+ reader["prn"].ToString()); } reader.Close(); conn.Close(); return complList; }
Une idée ?
Merci
Partager