IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#]Float + Base de données


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut [C#]Float + Base de données
    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.Direction= ParameterDirection.Input; p2.Value = float.Parse(textBox2.Text);
    cmd.Parameters.Add(p2);
    cmd.ExecuteNonQuery();


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

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Bonjour,

    Pour eviter ce genre de souci, utilise le type DECIMAL au lieu de FLOAT dans ta base SQL SERVER.

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    Merci mais le type décimal ne traite pas les virgules.

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Tiens c'est nouveau ça.
    Bien sur qu'il les traite... vérifie bien

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    J'ai essayé d'insérer 1.4 alors j'obtiens dans la base 1.
    (J'ai modifié le type dans la base de données de float en decimal).
    C'est quoi ma faute alors ?

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Il faut renseigner scale en bas dans les propriétés.

    Precision c'est le nombre maximal de chiffres que peut avoir la valeur
    Scale c'est le nombre maximal de décimales (il vaut 0 par défaut c'est ça que tu dois changer)

    DECIMAL(p,s)

    DECIMAL(9,5) --> 5 decimales maxi
    Valeurs correctes
    123456789
    1.23456
    1234.12545

Discussions similaires

  1. problème du float dans la base de donne sql serveur
    Par tawrirte dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/08/2011, 03h20
  2. Imprécision dans la base de donnée à cause de float.parse
    Par LhIaScZkTer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/07/2008, 11h47
  3. Type Float dans base de données SQL SERVER
    Par BYALI dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/03/2008, 11h05
  4. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo