Caractère ' dans un string [Résolu]

Signaler
Messages postés
6
Date d'inscription
jeudi 18 septembre 2008
Statut
Membre
Dernière intervention
4 février 2009
-
Messages postés
6
Date d'inscription
jeudi 18 septembre 2008
Statut
Membre
Dernière intervention
4 février 2009
-
Bonjour !

je suis un développeur amateur et j'aurais une petite question pour vous.

Je développe une une petite application en C# qui prend le contenu de string et l'insère dans une base de donnée

Mon problème est que quand ma string contient un apostrophe, le programme plante avec le message suivant : L'exception SqlException n'a pas été gérée 

Unclosed quotation mark after the character string 'l')'.
Incorrect syntax near 'l')'.

voici mon code

//début de code

string
str6 commentairerichTextBox.Text;SqlConnection con newSqlConnection(conn);

con.Open();

SqlCommand cmd = con.CreateCommand();

cmd.CommandText = "INSERT INTO Plaintes " +

"(Commentaire) VALUES ('" + str6 + "')";

cmd.ExecuteNonQuery();

con.Close();

//fin de code

quelqu'un pourrais m'aider a trouver la solution mais surtout m'expliquer pourquoi ?

Merci a l'avance !

3 réponses

Messages postés
6
Date d'inscription
jeudi 18 septembre 2008
Statut
Membre
Dernière intervention
4 février 2009

ok finalement j'ai trouver

le code est le suivant :

cmd.CommandText = "INSERT INTO Plaintes (Commentaire) VALUES (@str6)";

cmd.Parameters.AddWithValue("str6", str6);

cmd.ExecuteNonQuery();

Merci quand meme pour l'aide !
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

Il doit avoir une quote dans ton champ commentaire.

Pour corriger le probleme utilises les requetes parametrees.

cmd.CommandText = "INSERT INTO Plaintes (Commentaire) VALUES (@str6)";

cmd["@str6"] = str6;

cmd.ExecuteNonQuery();

Et les qotes seront doublées si nécéssaire
Messages postés
6
Date d'inscription
jeudi 18 septembre 2008
Statut
Membre
Dernière intervention
4 février 2009

Merci nhervagault pour ta réponse mais malheureusement, ca ne fonctionne pas

voici le message que je recois : Erreur 7 Impossible d'appliquer l'indexation à l'aide de [] à une expression de type 'System.Data.SqlClient.SqlCommand

j'utilise VS C# express 2008 (si ca peut aider a trouver la solution)

merci pour l'aide !