Bonsoir à tous,
J'ai développé dernièrement une application qui doit lier un combobox à une table contenant beaucoup de résultat afin de proposer des résultats (rien de bien spécial)
Le rapatriement des données se fait très vite malgré la grosseur de la table.
C'est à la liaison entre la table et le combobox que ca prend énormément de temps.
Voici le code incriminé :
j'obtiens donc dans la console de vs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CBDossierCourrier.AutoCompleteMode = AutoCompleteMode.Append CBDossierCourrier.DropDownStyle = ComboBoxStyle.DropDown CBDossierCourrier.AutoCompleteSource = AutoCompleteSource.ListItems donneDossierCourrier = New ClassDonneeDossiersCourrier(connSQLServer) debug.writeLine("Chargement de la table.") donneDossierCourrier.chargeTable() debug.writeLine("Liaison table / comboBox") CBDossierCourrier.DataSource = donneDossierCourrier.table debug.writeLine("Fin liaison table / comboBox") CBDossierCourrier.ValueMember = "NumInterne" CBDossierCourrier.DisplayMember = "Libelle"
Je me demandais donc si il n'y avait pas moyen de lier une table au comboBox de manière à ce que ca soit plus rapide?Chargement de la table.
Liaison table / comboBox
--- Plus de 30 secondes. ---
Fin liaison table / comboBox
Pour cette application j'avais bidouillé un système sur les évènements keyDown et keyUp afin de n'activer la liaison que quand l'utilisateur tape 3 lettres avec un like sur la bd (moins de données à lier, donc plus rapide).
Ca fonctionne mais le code n'est vraiment pas top et je suis sur qu'il y a moyen de faire mieux...
Partager