Caractère ' dans un string

Résolu
rdube Messages postés 6 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 4 février 2009 - 10 déc. 2008 à 18:20
rdube Messages postés 6 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 4 février 2009 - 11 déc. 2008 à 16:27
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

rdube Messages postés 6 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 4 février 2009
11 déc. 2008 à 16:27
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 !
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 déc. 2008 à 21:27
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
0
rdube Messages postés 6 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 4 février 2009
11 déc. 2008 à 14:00
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 !
0
Rejoignez-nous