Saisir un float dans une base de données

Bobby - 29 avril 2017 à 22:40 - Dernière réponse : Whismeril 10871 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention
- 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
Afficher la suite 

3 réponses

Répondre au sujet
Whismeril 10871 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention - 30 avril 2017 à 09:00
Commenter la réponse de Whismeril
DevLama 353 Messages postés mercredi 13 avril 2011Date d'inscription 10 janvier 2018 Dernière intervention - 6 mai 2017 à 03:18
0
Utile
1
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 10871 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 janvier 2018 Dernière intervention - 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....
Commenter la réponse de DevLama

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.