Pb : Insertion float dans BD

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 est que lorsque j'insère un float dans ma base de données alors elle sera stoquée avec plusieurs valeurs avant la virgule.
Par exemple : lorsque j'insère 12,6 alors j'obtient dans la ma base de données la valeur 12,6000003814697.

Voici le bout de code qui pose ce problème :
SqlParameter p2;SqlCommand cmd new SqlCommand("update Composant set LIB_COM'"+textBox1.Text+"', TYP_PRI = @pri, REF_COM ="+textBox3.Text+" where LIB_COM = '"+Composant.lib_com+"'",cn);
p2 = new SqlParameter();
p2.ParameterName = "@pri";
p2.SqlDbType = SqlDbType.FloaT;p2.DirectionParameterDirection.Input; p2.Value float.Parse(textBox2.Text);
cmd.Parameters.Add(p2);
cmd.ExecuteNonQuery();

J'espère que vous pouvez m'aider.
Merci.

2 réponses

Messages postés
259
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
7
Et en passant par un type Decimal au niveau de la base de données ou de .Net, çà ne passerait pas mieux ?

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Merci. J'ai déjà essayé avec le type décimal, cela minimise au moins le nombre de valeurs avant la virgule.


Ce que je ne comprends pas pourquoi lorsque j'insère à la base de données des données en utilisant sqlParameter, il y a beaucoup de valeurs avant la virgule. Alors que lorsque j'insère sans sqlParameter les floats insérés sont identiques aux valeurs écrites.


Ce sera sympa si quelqu'un aura une réponse .