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 :

La conversion de la chaîne ' ' en type 'Integer' n'est pas valide. vb.net


Sujet :

VB.NET

  1. #1
    Membre régulier
    Femme Profil pro
    ingénieur amélioration continue
    Inscrit en
    Février 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur amélioration continue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 57
    Points : 76
    Points
    76
    Par défaut La conversion de la chaîne ' ' en type 'Integer' n'est pas valide. vb.net
    bonjour tous le monde,
    je veux afficher le résultat de ma requete dans des textbox
    j'ai écris le code suivant
    Code : 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
    20
     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            Dim rd As SqlDataReader
            Try
                Cn.Open()
                cmd = New SqlCommand("SELECT isnull(pk_veh,0)pk_veh, isnull(désignation,'')désignation, isnull(projet,'')projet, isnull(version,'')version, isnull(taille_de_lot,0)taille_de_lot from [Cutting software].dbo.vehicule  WHERE désignation = '" & Form1.ComboBox3.SelectedValue & "'", Cn)
                rd = cmd.ExecuteReader
                While rd.Read
                    imp.TextBox1.Text = rd.GetInt32("pk_veh")
                    imp.TextBox2.Text = rd.GetString("désignation")
                    imp.TextBox3.Text = rd.GetString("projet")
                    imp.TextBox4.Text = rd.GetString("version")
                    imp.TextBox5.Text = rd.GetInt32("taille_de_lot")
                End While
                Cn.Close()
            Catch ex As SqlException
                MessageBox.Show(ex.Message)
            End Try
            imp.Show()
     
        End Sub
    mais j'ai toujours cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.InvalidCastException: 'La conversion de la chaîne "pk_veh" en type 'Integer' n'est pas valide 
    FormatException: Input string was not in a correct format.
    j'ai vérifié bien les types de mes colonnes dans ma BD
    • pk_veh, taille_de_lot : de type int
    • le reste de type varchar[50]

    merci d'avance
    " birds don't just fly they fall down and get up "

  2. #2
    Membre émérite 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
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    GetInt32 demande l'indice de la colonne de 0 à Count-1

    D'après ta requête, ça devrait être 0 pour pk_veh, donc rd.GetInt32(0).
    Je suppose qu'après cette ligne, tu auras le même genre de problème sur d'autres lignes ...

    Une remarque (si tu me permets) :
    Dans toute la programmation, pour les noms des variables, des procédures et fonctions, des objets et composants visuels, pour tout ce qui est nommé par le programmeur, il ne faut utiliser que :
    1. Les caractères alphabétiques NON accentués, majuscules et minuscules (certains langages comme tous ceux dérivés du C, font la distinction entre majuscule et minuscule : Total et total seraient 2 variables différentes);
    2. Les chiffres mais pas comme premier caractère;
    3. Le seul signe de ponction permis est le caractère de soulignement _ et lui, il peut être placé en 1er caractère ou ailleurs.



    Je fais cette remarque parce que je vois des accentués dans les noms de champs de ta requête. Ils ne gênent pas ici, mais tôt ou tard, cela posera des problèmes ...

    ...

  3. #3
    Membre régulier
    Femme Profil pro
    ingénieur amélioration continue
    Inscrit en
    Février 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur amélioration continue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 57
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Phil Rob Voir le message
    Une remarque (si tu me permets) :
    Dans toute la programmation, pour les noms des variables, des procédures et fonctions, des objets et composants visuels, pour tout ce qui est nommé par le programmeur, il ne faut utiliser que :
    1. Les caractères alphabétiques NON accentués, majuscules et minuscules (certains langages comme tous ceux dérivés du C, font la distinction entre majuscule et minuscule : Total et total seraient 2 variables différentes);
    2. Les chiffres mais pas comme premier caractère;
    3. Le seul signe de ponction permis est le caractère de soulignement _ et lui, il peut être placé en 1er caractère ou ailleurs.
    oui bien sur tu peux donner des remarques, plustot merci pour tes remarques. je vais essayer le code à nouveau avec les modifications et je te donne un feedback merci une autre fois
    " birds don't just fly they fall down and get up "

  4. #4
    Membre régulier
    Femme Profil pro
    ingénieur amélioration continue
    Inscrit en
    Février 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur amélioration continue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 57
    Points : 76
    Points
    76
    Par défaut solution
    merci Phil Rob grace à toi j'ai pu avancer
    ce-ci le code entier avec les modif
    Code : 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
     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            Dim rd As SqlDataReader
            Try
                Cn.Open()
                Dim cmd As New SqlCommand("SELECT isnull(pk_veh,0)pk_veh, isnull(designation,'')designation, isnull(projet,'')projet, isnull(version,'')version, isnull(taille_de_lot,0)taille_de_lot from [Cutting software].dbo.vehicule  WHERE designation =  '" & Form1.ComboBox3.SelectedValue & "'", Cn)
                rd = cmd.ExecuteReader
                While rd.Read
                    imp.TextBox1.Text = rd.GetInt32(0)
                    imp.TextBox2.Text = rd.GetString(1)
                    imp.TextBox3.Text = rd.GetString(2)
                    imp.TextBox4.Text = rd.GetString(3)
                    imp.TextBox5.Text = rd.GetInt32(4)
                End While
                Cn.Close()
            Catch ex As SqlException
                MessageBox.Show(ex.Message)
            End Try
            imp.Show()
        End Sub
    " birds don't just fly they fall down and get up "

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

Discussions similaires

  1. [Débutant] Erreur La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par dragondu83 dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/07/2014, 20h06
  2. [Débutant] La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par amine_maximus dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/06/2012, 23h11
  3. Réponses: 5
    Dernier message: 01/12/2011, 08h38
  4. Réponses: 12
    Dernier message: 07/02/2011, 23h01
  5. Réponses: 16
    Dernier message: 06/06/2007, 15h46

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