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

ASP.NET Discussion :

La virgule ou le point


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut La virgule ou le point
    Salut

    Je me retrouve confronté à un petit souci de pas grand chose, mais ça gave un peu.
    Je pense que cela doit être dû à mon manque de connaissance profonde et c'est pour ça que je viens chercher de l'aide ici.

    Donc, je prépare une requête SQL avec une donnée en Float.
    et je fais un truc dans ce gout là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim t As Double
    t = 1,35
    dm.ExecuterRequeteSimple("INSERT INTO Table (Temps) VALUES(" & t & ")")
    Et là, il me dit que je n'ai pas le même nombre de valeur que de champ dans ma reuqête.
    Aprés analyse, je me rend compte que le 1.35 est interprété en 1,35.

    Alors ma question est : comment faire pour que le Double arrive bien avec un point et pas une virgule, une fois interprété ?

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Par défaut
    salut

    un petit REPLACE ?

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Par défaut
    Moi j'utiliserai plutot un paramètre pour la requête c'est plus propre que de concatener des valeurs.

    Si tu as par exemple un varchar à ajouter, tu vas aussi t'amuser à doubler les quote !... Dès fois qu'un utilisateur vicieux saisisse "L'abruti" dans le champ pas exemple.

    Illustration avec un unique identifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Dim cnx As SqlConnection
     
            cnx = New SqlConnection(dsCmde.ConnectionString)
     
            cnx.Open()
                        Dim cmd As New SqlCommand("UPDATE COMMANDE SET ETAT_CMD = 1 WHERE UID_CMD=@ID", cnx)
                        Dim param As Data.SqlClient.SqlParameter
                        param = New Data.SqlClient.SqlParameter("@ID", Data.SqlDbType.VarChar, 36)
                        param.Value = Session("IdCmde")
                        cmd.Parameters.Add(param)
                        cmd.ExecuteNonQuery()

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci à tous les deux pour vos réponses.

    Pour le REPLACE, ça marche trés moyen, vu qu'on parle de Float et de Double, faut passer ensuite par de conversion à n'en plus finir.

    Pour le Paramettre, merci pour ton code, mais j'ai déjà un FrameWork perso qui gère tout ça trés bien.

    Ma question porte bien sur le fait de ne pas utiliser de paramettre. Je m'explique :
    mon FrameWork perso, gère toutes les requêtes SQL dans un fichier de ressources et avec obligation d'utiliser des paramettres.
    Mais j'ai fait un méthode qui gère une requête simple, par le biais d'une chaine. Ce truc là me sert à préparer les requêtes que je vais mettre en dur dans le fichier de ressource, parce que pendant le développement c'est chiant de passer de suite en ressource quand il faut modifier 20 fois la requête, faut recompiler à chaque modification.

    Donc ma question porte bien sur le fait d'utiliser la requête, je dirais, à "l'ancienne", par le montage d'un chaine concaténée. Et surtout de gérer le problème du format du séparateur décimal. Parce que, au delà des requête SQL, il peut se poser d'autre problème et j'aimerais bien comprendre.

    Merci

  5. #5
    Membre éclairé Avatar de Poussy-Puce
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 357
    Par défaut
    Et bien... de toutes façons, tu n'auras probablement pas le chois au replace étant donné que 1,35 n'est pas un nombre à virgule mais plutôt une chaîne de caractère pour SQL...

    J'opterais pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Test As String = "1,35"
    Dim Test2 As Double = Replace(Test, ",", ".")

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Moi je dirais plutot de faire un ToString sur la variable de type double en lui passant une culture de type FR (ou une culture qui a le point comme séparateur décimal).
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

Discussions similaires

  1. Remplacer les virgules par des points
    Par vatsyayana dans le forum Excel
    Réponses: 7
    Dernier message: 14/06/2008, 11h13
  2. remplacer virgule par un point
    Par maysa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/10/2007, 12h19
  3. Comment changer des virgules par des points
    Par solorac dans le forum Excel
    Réponses: 2
    Dernier message: 30/07/2007, 10h38
  4. Float : Interpréter la virgule comme un point
    Par nicolas.pied dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 28/12/2006, 14h58
  5. [sql] remplacer une virgule par un point
    Par shiners300 dans le forum Oracle
    Réponses: 1
    Dernier message: 23/12/2005, 19h19

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