none
C# prends des virgules, et mySQL des points RRS feed

  • Question

  • Salut à tous !

     

    J'ai un petit soucis de conversation entre mon tool et ma db.

     

     

    En effet, ma colonne quantité, peut entrer des données de type: 0,25

     

    Sauf, que MySQL prends des points: 0.25 du coup, Il enregistre 0 et pas 0.25, idem si j'ai 3,4, il enregistre 3.

     

    Ma question est donc la suivante: Comment changer cette virgule en un .?

     

    Meilleures salutations !

    jeudi 16 octobre 2008 09:28

Réponses

  • Bonjour,

     

    La méthode la plus simple (et donc la moins propre) est de faire :

    decimal d = 0.25;

    ... = d.ToString(CultureInfo.InvariantCulture)

     

    Maintenant, pour éviter ce genre de problème de manière générale avec les requête SQL. Il faut utiliser les requêtes paramétrées.

     

    Cordialement
    jeudi 16 octobre 2008 12:46
    Modérateur

Toutes les réponses

  • Bonjour,

     

    La méthode la plus simple (et donc la moins propre) est de faire :

    decimal d = 0.25;

    ... = d.ToString(CultureInfo.InvariantCulture)

     

    Maintenant, pour éviter ce genre de problème de manière générale avec les requête SQL. Il faut utiliser les requêtes paramétrées.

     

    Cordialement
    jeudi 16 octobre 2008 12:46
    Modérateur
  • Salut,

     

    Pas le temps de modifier en requete paramétré ^^.

     

    Par contre si tu as un moment ce soir Gilles? Pas mal de chose à te montrer (et pas que des bugs! Stick out tongue)

     

    A+

     

    jeudi 16 octobre 2008 13:29
  • Salut ,

    pour le separateur decimal il faut pas exiger la virgule ou le point , il faut verifier le separateur par defaut du systeme pour cela :

    Code Snippet

    char CaracVirgule = Convert.ToChar(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator);

    if ((Convert.ToString(e.KeyChar) == ".") | (Convert.ToString(e.KeyChar) == ","))

    }

    e.KeyChar = CaracVirgule;

    }

     

     

     

    vendredi 17 octobre 2008 20:56
  • Exactement, il ne faut pas exiger mais modifier le séparateur par défaut. Voici un autre extrait de code permettant d'y arriver (celui du dessus ne fonctionne pas chez moi) :

                    NumberFormatInfo nfi = new CultureInfo("fr-FR", false).NumberFormat;
                    nfi.NumberDecimalSeparator = ".";


                    float fTest = 3.123F;
                    Console.WriteLine("Nombre : " + fTest.ToString(nfi))
    jeudi 27 novembre 2008 15:12