Bobby
-
Modifié le 29 avril 2017 à 22:54
Whismeril
Messages postés19019Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention14 avril 2024
-
6 mai 2017 à 07:48
Bonjour,
J'ai réalisé une application en C# dans laquelle on peut enregistrer de nouveaux produits dans la base de données (nom et prix). Sauf que j'ai un problème pour la saisie du prix.
requête SQL dans la classe Produit_DB :
public static void ajouterUnProduit(string nom, float prix) { try { MySqlCommand sql = Form1.objetConnexion.getConnexion().CreateCommand(); sql.CommandText = "INSERT INTO produit VALUES (NULL, '" + nom+ "', " + prix + ")"; // id, nom, prix sql.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
Pour la récupération des champs saisis :
string nom = textBoxNom.Text; float prix = float.Parse(textBoxPrix.Text);
//appel de la requête SQL qui est dans la classe Produit_DB Produit_DB.ajouterUnProduit(nom, prix);
La classe Produit :
public class Produit { private int id; private string nom; private float prix;
public Produit(int id, string nom, float prix) // le constructeur { this.id= id; this.nom= nom; this.prix= prix; } }
J'ai fait un test avec comme nom "test" et comme prix "19.90".
Ma requête ressemble à : "INSERT INTO produit VALUES (NULL, 'test', 19.90);"
Sauf que j'ai une erreur disant "le format de la chaîne est incorrect". Le pire c'est que j'ai fait un copier-coller de cette requête directement dans la base de données et elle a fonctionné.
J'ai essayé avec "19,90" mais je sais pourquoi ça ne marche pas (à cause de la virgule et pas du point). J'ai aussi essayé de dire que le prix était de type decimal, float et double et aucun n'a fonctionné.
J'espère que c'était clair et que vous pourriez m'aider sinon faites le moi savoir.
DevLama
Messages postés356Date d'inscriptionmercredi 13 avril 2011StatutMembreDernière intervention18 novembre 202110 6 mai 2017 à 03:18
Bonsoir,
pourquoi as-tu mis NULL dans ta requête ??
Si id est autIncrement alors tu n'as qu'enlever le NULL.
pcq si tu as mis dans la BD décimal ou autres types à virgule flottant ça doit fonctionner
Whismeril
Messages postés19019Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention14 avril 2024655 6 mai 2017 à 07:48
Bonjour okosa, si j'ai signalé que ce sujet est un doublon, c'est pour éviter qu'il y ait de réponses ici alors que l'autre sujet est résolu....