Vous utilisez un navigateur obsolète, veuillez le mettre à jour.
Veuillez utiliser un navigateur internet moderne avec JavaScript activé pour naviguer sur OpenClassrooms.com
Une question ? Pas de panique, on va vous aider !
Ce sujet est fermé.
Bonjour,
Je poste ici ayant un soucis, j'utilise ce code, pour écrire une requête sql et la passer à la méthode Insert.
BaseDonnee bd = new BaseDonnee(); string rq = "INSERT INTO client(nomClt, prenomClt, adresseClt, cpClt, villeClt, adresseMailClt, telClt) VALUES("+nomClt.ToString() + ','+prenomClt.ToString() + ','+adresseClt.ToString() + ','+cpClt.ToString() + ','+villeClt.ToString() + ','+emailClt.ToString() + ','+telClt.ToString()+")"; bd.Insert(rq);
La méthode Insert de la classe BaseDonnee :
public void Insert(string rq) { if (this.OpenConnexion()) { MySqlCommand command = connexion.CreateCommand(); command.CommandText = rq; try { command.ExecuteNonQuery(); } catch (InvalidOperationException e) { } this.CloseConnexion(); } }
Je précise que la connexion est ouvert avec la méthode OpenConnexion()
Lors de l’exécution de la requête j'ai cette erreur :
MySql.Data.MySqlClient.MySqlException : 'Erreur de syntaxe près de 'rue du test,04420,testland,test@test.com,0123456789)' à la ligne 1'
Si vous auriez une idée, ou une piste d'ou cette erreur peut provenir ça serait super.
Merci d'avance pour votre aide.
EDIT: Finalement sujet résolus, en corrigeant les quotes de la requête :
string rq = "INSERT INTO client(nomClt, prenomClt, adresseClt, cpClt, villeClt, adresseMailClt, telClt) VALUES('"+ nomClt + "','" + prenomClt + "','" + adresseClt + "','" + cpClt + "','" + villeClt + "','" + emailClt + "','" + telClt + "')";
-Edité par Serkox 13 décembre 2020 à 13:58:41
#Avgeek
Salut,
le problème de ta requête est que une injection SQL est possible.
Essaye de passer pas des requêtes préparées
#Avgeek