Pb : Textbox + BdD + float [Résolu]

Signaler
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007
-
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007
-
Salut, mon problème c'est que j'ai un textbox qui contient normalement une valeur de type float (l'utilisateur peut modifier cette valeur comme il veut). Lors de l'insertion dans la base de données, il n'y a aucun problème. Mais lorsque je veux modifier la valeur du float, il y a un problème lors de l'update dans la base de données.

Voici le bout de code qui me pose le problème :
try

{
   
float prix =
float.Parse(textBox2.Text); 
   SqlCommand cmd new SqlCommand("update Composant set REF_COM "+textBox3.Text+",LIB_COM ='"+textBox1.Text+"', TYP_PRI ="+prix+" where LIB_COM = '"+composont_pro.lib_pro+"' and REF_COM = "+composont_pro.ref_pro+"",cn); /*TYP_PRI est de type float et c'est ce composant qui pose un problème */

   try
   {
      cmd.ExecuteNonQuery();

      cn.Close();
      Close(); 
   }

   catch
   {
      MessageBox.Show("Erreur lors de la mise à jour d'un profile");
   }
}

catch
{
   MessageBox.Show("Donner une valeur correcte pour le prix");
}

J'espère que je me suis bien expliqué sinon je pourrai décrire et que vous pouvez m'aider à trouver où est le problème.
Merci.

9 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Salut,

Utilises des SqlParameter pour que ce soit plus simple a gérer (et plus sur)
Mx
MVP C# 
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
ta principale erreur c'est de ne pas utiliser les SqlParameters !


 


car je suis sur que ton problème vient tout simplement du séparateur décimal !






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Fiouf, a 4 secondes pret j'étais eu ^^

Mx
MVP C# 
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
trop court...

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
4 secondes, puis 5...

<hr size="2" />VC# forever
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
oui... mais il était en vacances toute la journée lui

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Si seulement...

Mx
MVP C# 
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Merci pour vos réponses. J'ai pu corriger l'erreur qui est due au séparateur décimal.

Maintenant, lorsque je remplis le textbox par un float (par exp 12,6) alors j'obtiens dans la base de données une valeur très grande après la virgule (pour 12,6 => BD : 12,6000003814697).
Comment est ce que je peux régler ce ptit problème  ?
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

J'ai oublié de mettre le code, le voici :
p2 =

new SqlParameter();
p2.ParameterName = "@pri";
p2.SqlDbType = SqlDbType.Float;
p2.Direction= ParameterDirection.Input;
p2.Value =
float.Parse(textBox2.Text);

Est ce qu'il y a une propriété qui limite les valeurs après la virgule ?