Problème avec les requètes paramétrées

tipdeep Messages postés 4 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011 - 12 juil. 2011 à 13:51
tipdeep Messages postés 4 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011 - 12 juil. 2011 à 14:59
Bonjour,

je passe de SQLite à MySQL et j'ai des soucis avec les requètes paramétrées.
Quand j'essaie d'insérer des chaines de caractères avec des caractères spéciaux (notamment des apostrophes), j'ai un message d'erreur (comme quoi ma syntaxe SQL n'est pas bonne).

Voici comment je rentre les données :
cmdMySQL.CommandText = "INSERT INTO mabase (id) VALUES (?id_value)";
cmdMySQL.Parameters.AddWithValue("?id_value", stringAvecApostrophes);
cmdMySQL.ExecuteNonQuery();


Avant quand j'utilisait SQLite, je n'avais aucun soucis (les ? étaient remplacés par des @ dans le code).
J'utilise le connector .NET 2.0 trouvé sur le site officiel mysql.

Avez-vous une idée du problème ?

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
12 juil. 2011 à 14:08
Hello,

- t'es sur que ce n'est pas un @ à la place du ?
- à quoi ressemble ta string avec apostrophes ?


Sébastien FERRAND
Ingénieur Concepteur Senior
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
tipdeep Messages postés 4 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011
12 juil. 2011 à 14:47
Oui avec un @ j'ai un message d'erreur.
En fait c'est pas vraiment une apostrophe mais un caractère genre accent aigue (mais sans symbole en dessous)
Je pourrait traiter ce cas a part avec un Replace mais je crains que d'autres cas particuliers ne se présentent plus tard...
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
12 juil. 2011 à 14:48
Salut

Je confirme que même avec le driver MySQL, il faut utiliser un @ à la place du ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
tipdeep Messages postés 4 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011
12 juil. 2011 à 14:59
Oui en effet j'ai refait des tests et ca marche.
J'avais pris exemple sur cette page : http://www.programmingado.net/a-137/Insert-data-into-MySQL-with-C-using-stored-procedure-and-get-last-id.aspx

merci pour tout
0
Rejoignez-nous