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 :

fonction Replace() qui ne fonctionne pas pour changer un espace en rien


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut fonction Replace() qui ne fonctionne pas pour changer un espace en rien
    Bonjour à tous,

    J'ai une chaîne qui comporte un espace que je dois supprimer avant de l'envoyer sur la BDD.
    Problème : la requête SQL est en erreur ==>

    ERROR [22P02] ERROR: invalid input syntax for type numeric: "3�260.00";
    Error while executing the query
    Ma chaîne est "3 260.00", j'utilise donc la fonction Replace(, " ","") pour supprimer l'espace en question.

    Comme on peut voir dans le message d'erreur, il y a un caractère "�" qui n'est pas reconnu par PostGreSQL.
    D'où peut-il bien venir sachant que c'est un espace transformé en "rien" ?

    Merci à tous.


    EDIT : le bloc de code ne connaît pas "�"

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Avant d'effectuer ta requête, tu pourrais convertir ta chaîne en un Float.

  3. #3
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    C'est exactement ce que je viens de faire et ça me renvoi :

    Conversion from string "3�399.98" to type 'Double' is not valid.

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Mais tu le fais dans ton code? du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim MonPrix as string = "3 254,45"
    Dim MonPrixFloat as Float = MaFonction(MonPrix)
     
    Execute_ma_requete ("Insert into matable (monprix) values (" & MonPrixFloat & ")")

  5. #5
    Membre éclairé Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Par défaut
    Bonjour,
    Essayer cet exemple ca marche chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim MonPrix As String = "3 254,45"
            MonPrix = MonPrix.Replace(" ", "")
            MessageBox.Show(MonPrix.Trim)
    Bonne Continuation.

  6. #6
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    Citation Envoyé par sihammaster Voir le message
    Bonjour,
    Essayer cet exemple ca marche chez moi:
    Dim MonPrix As String = "3 254,45"
    MonPrix = MonPrix.Replace(" ", "")
    MessageBox.Show(MonPrix.Trim)
    Bonne Continuation.
    Oui effectivement j'avais essayé, quand je l'affiche comme ça, cela fonctionne. Mais PostGreSQL n'a pas l'air de le voir de cette façon. Au lien de mettre "", il faut croire qu'il y a "rien". Vous me suivez ?

  7. #7
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    Oui effectivement, je le fais dans le code, au moment de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO matable (champ) VALUES " & CType(monprix,Double)

  8. #8
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Transformer un Double en String, ça sent la tâche pour la surcharge de Double.ToString(format, provider) ça

    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    'Déclaration d'un Double
    Dim doubleValue As Double = 3260.0
     
    'Conversion du Double en String selon le format ; partie entière et décimale,
    'séparateur de milliers, séparateur décimal et signe négatif optionnel définis
    'selon la culture en cours sur le système - français normalement -
    Dim stringValue As String = doubleValue.ToString("N2", Globalization.NumberFormatInfo.CurrentInfo)
     
    'Affichage de la valeur (résultat obtenu: 3 620,00)
    Console.WriteLine(stringValue)
     
    'Conversion du Double en String selon le format ; partie entière et décimale,
    'séparateur décimal et signe négatif optionnel définis
    'selon la culture dite invariante/neutre
    stringValue = doubleValue.ToString("F2", Globalization.NumberFormatInfo.InvariantInfo)
     
    'Affichage de la valeur (résultat obtenu: 3620.00)
    Console.WriteLine(stringValue)

    Voilà en espérant avoir aidé un peu, plus d'infos sur les formats numériques disponible sur msdn

  9. #9
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    En fait on cherche plutôt à transformer un string en double.
    Bref, en fait pour mieux expliquer le contexte, j'ai un prog qui va lire un fichier text, puis qui split les lignes pour extraire chaque donnée que je vais ensuite envoyer dans la BDD.
    Voilà pourquoi mes chiffres sont en string.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction .replace qui ne fonctionne pas.
    Par Rominou777 dans le forum Débuter avec Java
    Réponses: 19
    Dernier message: 09/02/2012, 19h22
  2. Update et replace qui ne fonctionnent pas
    Par maysa dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/02/2008, 13h47
  3. Fonction mysql qui ne fonctionne pas pour un ancien postgreIste
    Par floreasy dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/01/2008, 18h49
  4. [SQL] Fonction SUM qui ne fonctionne pas !
    Par nigg4z dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 11/10/2007, 16h20
  5. Fonction While {} qui ne fonctionne pas
    Par zoom61 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2006, 12h17

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