Requette sql

mohamedvb.net - 22 janv. 2014 à 11:07
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 26 janv. 2014 à 09:54
Bonjour,
je veux faire une recherche avec une requette sql selon les caractere que je tape dans le textbox
exemple
si je tape la letre 'm'
le resultat doit etre la selection de tout qui commence par 'm' si j'ajoute 'b' afficher qui commence par 'mb' ...

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 22/01/2014 à 11:25
Bonjour,
Utilise donc l'opérateur Like et ses jokers dans ta requête.

PS : mais su la table est volumineuse, l'exécution risque de tout ralentir, puisque la requête devra être modifiée et exécutée à chaque frappe dans la textbox.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
mohamedvb.net
22 janv. 2014 à 11:37
c'est ma requette:
strSql = "SELECT article.* FROM article WHERE id_art LIKE '%" + TextBox5.Text + "%' "
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 janv. 2014 à 11:44
Tu as un champ nommé article.* dans ta table article ?
Tu es sûr ?
0
mohamedvb.net
22 janv. 2014 à 11:50
nn '* 'c'est pour dir selectiontionner tout les champ de cette table (article)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 janv. 2014 à 12:01
alors article. ne doit pas précéder * !
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 janv. 2014 à 15:59
Salut
Tu confonds ucfoutu : 'article' est le nom de la table.
Le champ est 'id_art'.
Pour que le LIKE fonctionne pour rechercher les champs "commençant par", il faut mettre le % après le texte :
LIKE '" & TextBox5.Text & "%'"

- Préférer & à + pour concaténer des chaines.
- Attention : La TextBox ne doit pas contenir de signe apostrophe ' sinon il y aura une erreur de syntaxe SQL (sujet largement débattu dans ce forum)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 22/01/2014 à 19:45
Bonjour
ç' a l'air lourd et pas pratique
à chaque frappe on effectue une requette et charger un datagridview pour afficher la requette
ex je frappe m le datagridview va afficher tous les enregistrements
qui contient un nom article commençant par m
et maintenant l'utilisateur doit chercher dans le datagridview
son article.
il faudrait afficher une liste des noms des articles et ensuite
on choisit l'article et effectue une requette
peut etre ainsi
charger dans un combobox la liste d'article
et effectuer la recherche selon le selected item de la combo
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 janv. 2014 à 20:55
Ca, c'est certain; cs_ShayW que ce sera lourd ! Et ce le sera d'autant que la table sera volumineuse.
Je partage totalement ton avis (et également sur le plan pratique).
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
26 janv. 2014 à 09:54
Bonjour

Tout dépend du type de moteur SQL et de la localisation de la base, il faut également limiter le nombre d'enregistrement retourné, et ça devrait le faire.

tester avec SQL 2008 R2, en local, sur une table de 40000 enregistrements, en limitant la requête à 20 enregistrements c'est tout à fait honorable comme résultat.

Dans les cas extrêmes, on peut toujours exécuter la requête en mode asynchrone en découplant le chargement du datagridview, cela permettrait une meilleur fluidité.
0
Rejoignez-nous