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

Signaler
Messages postés
4
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
12 juillet 2011
-
Messages postés
4
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
12 juillet 2011
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
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
Messages postés
4
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
12 juillet 2011

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...
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
43
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é. -
Messages postés
4
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
12 juillet 2011

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