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

VB.NET Discussion :

Remplacer "," par un point


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2008
    Messages : 89
    Par défaut Remplacer "," par un point
    Bonsoir j'ai un petit probléme entre Vb.net et SQL Server.
    Lors de l'insertion d'un chiffre avec une virgule SQL ne prend pas la virgule en compte.
    Et si j'essaie de mettre la valeur avec un . là c'est vb qui n'en veut pas.
    Je tourne vraiment en rond sur ce maudit probléme.
    Donc si vous avez une solution ...
    Merci d'avance

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    utilise des dbparameters en mettant un nombre dedans (via cdec par exemple)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bnj,

    tu peux travailler avec CultureInfo, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double number;
                number = 12345.6789;
     
                Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
                // Displays 12345.6789
                Console.WriteLine(number.ToString("G", CultureInfo.CreateSpecificCulture("fr-FR")));
                // Displays 12345,6789
    pour plus d'infos => http://msdn.microsoft.com/fr-fr/library/dwhawy9k.aspx

    Cdt,

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2008
    Messages : 89
    Par défaut
    Ok mais le soucis c'est que je récupère la valeur dans une textbox (donc je peux pas la récupérer avec un .) étant donner que je vais réaliser de nombreux calcul avec ces données le type string convient pas trop.
    Il me faudrait juste un moyen pour qu'au moment de l'insertion dans ma base de données du nombre (avec la virgule) se "transforme" avec un point.

    En gros :

    Je tape 123,3 dans ma textbox et dans SQL c'est 123.3 qui est enregistré.
    Et lorsque je lit dans SQL le 123.3 repasse en 123,3 dans VB.Net.
    Super relou quoi

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Hello, si tu utilise les requêtes paramétrées il n'y a pas a faire de conversion...

  6. #6
    Membre éclairé Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Par défaut
    Pourquoi se casser autant la tête ! Tu n'a qu'a convertir la virgule en point lors de la saisie par l'utilisateur! c'est tout bête... tu va mettre ce petit bout de code dans ton keypress de ta zone de text. COmme ca le problème est résolu d'une manière plus efficace.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    '46 le point
    '44 la virgule
    If Asc(e.KeyChar) = 46 Then e.KeyChar = ","
    'si c'est une virgule et qu'il y en a déja une dans le textbox, ou qu'elle est tappé en premier caractère, on annule la saisie
    If Asc(e.KeyChar) = 44 And (CType(sender, TextBox).Text.IndexOf(",") > 0 Or CType(sender, TextBox).Text = "") Then e.Handled = False

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par tssi555 Voir le message
    Pourquoi se casser autant la tête ! Tu n'a qu'a convertir la virgule en point lors de la saisie par l'utilisateur! c'est tout bête... tu va mettre ce petit bout de code dans ton keypress de ta zone de text. COmme ca le problème est résolu d'une manière plus efficace.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    '46 le point
    '44 la virgule
    If Asc(e.KeyChar) = 46 Then e.KeyChar = ","
    'si c'est une virgule et qu'il y en a déja une dans le textbox, ou qu'elle est tappé en premier caractère, on annule la saisie
    If Asc(e.KeyChar) = 44 And (CType(sender, TextBox).Text.IndexOf(",") > 0 Or CType(sender, TextBox).Text = "") Then e.Handled = False
    e.KeyChar est readonly
    et le plus propre reste les paramètres...

Discussions similaires

  1. remplacer une virgule par un point
    Par parano dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 10/02/2012, 16h12
  2. Réponses: 5
    Dernier message: 23/07/2009, 19h49
  3. Remplacer la virgule par un point
    Par lollo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/11/2008, 18h08
  4. Remplacer les virgules par des points
    Par vatsyayana dans le forum Excel
    Réponses: 7
    Dernier message: 14/06/2008, 11h13
  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