[débutant] Requête avec MysqlAdapter et LIKE

ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009 - 2 févr. 2009 à 16:41
imothepe_33 Messages postés 168 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 28 novembre 2012 - 2 févr. 2009 à 21:10
Bonjour à tous,

J'ai un souci .. j'aimerais exécuter une requête sur un serveur mysql ( jusqu'ici tout va bien ) Mais lorsque je veux faire une requete de type

string com = "SELECT * FROM matable where nom LIKE '?nom%'"

cela ne marche pas ..

il semblerait que ce soient les simple quote qui posent problème car si je les enleve et remplace le like par = alors ça fonctionne...

mais j'ai absolument besoin d'un LIKE et de mettre un %   ( afin de lister par exemple les noms commençant par la lettre saisie etc.. )

please help me ..

comment parser cette histoire ??

par avance merci

4 réponses

imothepe_33 Messages postés 168 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 28 novembre 2012 7
2 févr. 2009 à 17:43
En supposant que 'nom' est ton paramètre, tu as deux options:

1-  string com = "SELECT * FROM matable Where nom LIKE " + "?" + nom.ToString() + "%" (en fait c'est simplement une concaténation de chaines de strings)

2- tu utilises une requête paramétrée avec un paramètre nommé (@nom) comme suis

string com = "SELECT * FROM matable Where nom LIKE @nom"

ensuite tu fais:

TaCommand.Parameters.Add("@nom", MySqlDbType.VarChar,50).Value = "?"+ TaValeur.ToString() +"%"

Only the strong survive !
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
2 févr. 2009 à 19:31
La deuxieme solution ne marche pas.. enfin, comme je voudrais ...

dans l'état elle ne me sort aucun résultat, et si j'enleve l'encapsulation "?" +       et "%" elle me sort comme un égal ..

elle ne prend donc pas en compte le "%" qui sert grandement à la requete... :'(
0
ben2249 Messages postés 11 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 2 février 2009
2 févr. 2009 à 19:33
ok c'est bon j'ai trouvé ...

Merci en tous cas pour ton aide.

Après avoir répondu j'ai réalisé que dans le cas où celà marchait, je ne mettais donc pas le "?" +             mais en laissant le     +"%"     à la fin, ça a marché niquel

Merci
0
imothepe_33 Messages postés 168 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 28 novembre 2012 7
2 févr. 2009 à 21:10
Heureusx de constater que ça marche ! Haapy coding...

Only the strong survive !
0