Saisir un float dans une base de données

Bobby - Modifié le 29 avril 2017 à 22:54
Whismeril Messages postés 19019 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 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.

Bobby

2 réponses

Whismeril Messages postés 19019 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 655
30 avril 2017 à 09:00
0
DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 10
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
0
Whismeril Messages postés 19019 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 655
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....
0
Rejoignez-nous