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 :

ERROR converting data type varchar to real


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    SAP MM SD technical & functional consultant
    Inscrit en
    Février 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : SAP MM SD technical & functional consultant
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 57
    Par défaut ERROR converting data type varchar to real
    Bonjour tout le monde,

    je veux insérer des valeurs des textbox dans ma base de données dont plusieurs colonnes sont de type 'real' . j'ai écrit cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rq1 = "insert into odl_dec VALUES ( '" & TextBox1.Text & "','" & desveh.Text & "', '" & Val(tailledelot.Text) & "','" & reftissu.Text & "','" & desigtissu.Text & "','" & placement.Text & "','" & effstd.Text & "', '" & Val(longmat.Text) & "', '" & Val(largmat.Text) & "','" & nblz.Text & "','" & Val(totlineaire.Text) & "','" & Val(surfacetot.Text) & "','" & Val(surfaceuti.Text) & "', GetDATE(),'" & ComboBox1.Text & "')"
    mais j'ai remarqué que seulement la partie entière des valeurs est insérée, la requete ne tient pas compte des chiffres après la virgule,donc j'ai utilisé la fonction convert
    j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rq1 = "insert into odl_dec VALUES ( '" & TextBox1.Text & "','" & desveh.Text & "', '" & Val(tailledelot.Text) & "','" & reftissu.Text & "','" & desigtissu.Text & "','" & placement.Text & "','" & effstd.Text & "', Convert(real ,'" & longmat.Text & "'), Convert(real, '" & largmat.Text & "'), Convert(real, '" & nblz.Text & "'), Convert(real, '" & totlineaire.Text & "'), Convert(real , '" & surfacetot.Text & "'), Convert(real ,'" & surfaceuti.Text & "'), GetDATE(),'" & ComboBox1.Text & "')"
    et ça me retourne l'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR converting data type varchar to real
    merci de m'aider

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Val ne vaut rien quand le séparateur décimal est la virgule. Essaie soit avec le vieux Cdbl de BASIC ou avec TryParse

  3. #3
    Membre confirmé
    Femme Profil pro
    SAP MM SD technical & functional consultant
    Inscrit en
    Février 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : SAP MM SD technical & functional consultant
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 57
    Par défaut
    Bonjour clementmarcotte,
    merci pour ta réponse,
    j'ai essayé ce code avec tryParse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim b, c As Double
                    Double.TryParse(TextBox1.Text, b)
                    Double.TryParse(TextBox2.Text, c)
                    rq1 = "insert into real VALUES ( ' " & b & "','" & c & "')"
    mais ça me retourne le meme erreur de conversion de data de type varchar en real

    alors j'ai essayé avec Cdbl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       rq1 = "insert into real VALUES ( ' " & CDbl(TextBox1.Text) & "','" & CDbl(TextBox2.Text) & "')"
    j'ai eu l'erreur suivant

    Nom : Capture.JPG
Affichages : 232
Taille : 23,4 Ko

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Pour les conversions de type, il me semble que CType est très bien aussi et c'est du DotNet. Toutefois, pour le problème du point (ou virgule), rien de tel qu'une petite fonction de correction des chaines numériques avant de les intégrer dans des calculs ou conversions.

    MAIS le problème n'est pas là !!!!

    Comme indiqué par son message, l'erreur survient parce que ton code s'est trouvé en situation de convertir une chaine vide en numérique (tentative de conversion de "" en Double). Il te faut donc éviter ces chaines, soit en évitant leur conversion, soit en les remplaçant par 0, ou peut-être en plaçant ton opération délicate dans un Try.
    Perso, j’opterais pour le remplacent des chaines numériques vides par 0.

    Bonne soirée,

  5. #5
    Membre confirmé
    Femme Profil pro
    SAP MM SD technical & functional consultant
    Inscrit en
    Février 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : SAP MM SD technical & functional consultant
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 57
    Par défaut
    Bonsoir , merci phil Robe pour ta réponse,
    bon pour la chaine vide , ça était une faute lors de remplissage( j'ai pas des chaines vides à convertir)
    pour la conversion de type je vais essayer CType et je te donne un retour , mais je n'ai aucun idée conçernant les fonctions de correction des chaines numériques que tu as mentionnées
    j'ai googlé un peut mais je me trouve dans le vague merci de me donner un exemple ou un support qui peut me guider

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour Hounaikda,

    Voici la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Function PointVirgule(ByVal Valeur As String) As String
            Dim Test As String = "1,2"  ' Pour déterminer si Point ou Virgule
            Dim TestNum As Single
            Try
                TestNum = CType(Test, Single)
                Test = Valeur.Replace(".", ",")  ' Si on passe ici, c'est qu'il faut la virgule
            Catch ex As Exception
                Test = Valeur.Replace(",", ".")  ' Si on passe ici, c'est qu'il faut le point
            End Try
            Return Test
        End Function
    Avec cette fonction, le code suivant ne fonctionnera quel que soit le réglage des paramètres régionaux de ton PC et quel que soit le séparateur de décimales encodé dans TextBox_UneChaine_Numerique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim UnNombreReel As Double
    UnNombreReel = CType(PointVirgule(TextBox_UneChaine_Numerique.Text), Double)
    Très bonne journée ...

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

Discussions similaires

  1. Error converting data type varchar to bigint.
    Par Ineedi2 dans le forum Développement
    Réponses: 1
    Dernier message: 11/09/2015, 17h15
  2. [2012] Error converting data type nvarchar to datetime
    Par eddyphan dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/11/2013, 13h39
  3. Réponses: 1
    Dernier message: 03/03/2009, 14h44
  4. Syntax error converting character string to smalldatetime data type.
    Par Anthony.Desvernois dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/07/2007, 17h26
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

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