J'avais besoin de faire une recherche rapide dans un datagridview c'est a dire de deplacer la ligne (row) en surbrillance selon les characteres saisis par l'utilisateur. J'arrive a faire cela, mais ceci exige de proceder a plusieurs requetes sql sur la base de donnees donc ouvrir et fermer la connection autant de fois qu'il y a de characteres saisis. Il me semble qu'il devrait exister un moyen plus simple de faire ceci en procedant a des requetes non pas sur la bd mais sur le dataset qui lui est en memoire du client. Si une telle possibilite existe, comment faire?
Ce qui se fait le plus couramment et ce pourquoi le DataSet est conçu c'est de filtrer les données...
En gros tu fais un requête vers le serveur en sélectionnant les données qui t'intéressent dans ta table, celle-ci via un TableAdapter qui aura une requête SELECT, puis tu crée un BindingSource auquel tu définis la table remplie par ce tableAdapter comme étant sa source de données, ce BindingSource étant lui même la source de données de ton DataGridView. L'avantage c'est que ce BindingSource possède une propriété Filter qui te permet de mettre une sorte de clause WHERE locale.
En gros le BindingSource est un lien entre Le DataGridView et la table remplie par le TableAdapter
Ce qui filtrera les lignes en ne laissant apparaître que les lignes dont les premières lettres du champ nom commencent par le texte contenu par ton textbox.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Merci pour l'info, Mayzz. Je trouvais que c'etait idiot de revenir chaque fois a la bd alors que le dataset etait la sur la machine de l'utilisateur. Tout simplement ca allait a contre sens de la philosophie de ado.net.