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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
essaiList = new List<string>(GetCompletionList());
ultraComboEditor1.DataSource = essaiList;
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.
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:

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;
        }
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..

Une idée ?

Merci