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 :

echec de la conversion de paramètre d'un string en int32


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut echec de la conversion de paramètre d'un string en int32
    SVP Aidez moi je suis fatigué de chercher et ce depuis 3 semaines.Quand je cique sur le bouton Ajouter j'ai l'erreur suivante:
    echec de la conversion de paramètre d'un string en int32
    Voici le code de mon Bouton Ajouter. Je vs présente tout le code.
    Excusez moi

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    Dim maConnexionSQLsrv As OleDbConnection
            Dim myCommand As OleDbCommand
            Dim maRequete, ConnexionSQL As String
     
            'Récupération de la chaine de connexion au serveur de base de données
            ConnexionSQL = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\Etablissements.accdb"
            maConnexionSQLsrv = New OleDbConnection(ConnexionSQL)
     
            'Requete mise a jour de la table client
            maRequete = "INSERT INTO [Etudiants] ( [Telephone_personnel],[Telephone_professionnel],[Telephone_mobile],[Page_Web],[Numero_telecopie],[NumInscription],[Telephone_du_contact_urgences1],[Telephone_du_contact_urgences2],[Tel_medecin],[Adresse_Etudiant],[nom],[Prenom],[Lieu_Naissance],[Ville],[Code_Postal],[Departement],[Remarques],[IDEtudiant],[Date_Inscription],[contact_urgence],[Relation_urgences],[Nom_medecin],[Allergies],[Medicaments],[Etablissements],[NumExo],[Specialite_Etudiant],[niveau_Etudiant],[Classe_Etudiant],[Pays_Région]) VALUES (@Telephone_personnel,@Telephone_professionnel,@Telephone_mobile,@Page_Web,@Numero_telecopie,@NumInscription,@Telephone_du_contact_urgences1,@Telephone_du_contact_urgences2,@Tel_medecin,@Adresse_Etudiant,@nom,@Prenom,@Lieu_Naissance,@Ville,@Code_Postal,@Departement,@Remarques,@IDEtudiant,@Date_Inscription,@contact_urgence,@Relation_urgences,@Nom_medecin,@Allergies,@Medicaments,@Etablissements,@NumExo,@Specialite_Etudiant,@niveau_Etudiant,@Classe_Etudiant,@Pays_Région)"
     
            'Création de la commande SQL
            myCommand = New OleDbCommand(maRequete, maConnexionSQLsrv)
     
            'Création et décalartion des paramètres
            With myCommand.Parameters
                .Add(New OleDbParameter("@Telephone_personnel", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Telephone_professionnel", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Telephone_mobile", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Page_Web", OleDbType.VarChar, 50))
                .Add(New OleDbParameter("@Numero_telecopie", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@NumInscription", OleDbType.Integer, 10))
                .Add(New OleDbParameter("@Telephone_du_contact_urgences1", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Telephone_du_contact_urgences2", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Tel_medecin", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Adresse_Etudiant", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Nom", OleDbType.VarChar, 25))
                .Add(New OleDbParameter("@Prenom", OleDbType.VarChar, 50))
                .Add(New OleDbParameter("@Lieu_Naissance", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Ville", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Code_Postal", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Departement", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Remarques", OleDbType.VarChar, 150))
                .Add(New OleDbParameter("@IDEtudiant", OleDbType.VarChar, 10))
                .Add(New OleDbParameter("@Date_Inscription", OleDbType.Date))
     
                .Add(New OleDbParameter("@contact_urgence", OleDbType.Integer, 16))
                .Add(New OleDbParameter("@Relation_urgences", OleDbType.VarChar, 25))
                .Add(New OleDbParameter("@Nom_medecin", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Allergies", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Medicaments", OleDbType.VarChar, 35))
                .Add(New OleDbParameter("@Etablissements", OleDbType.Integer, 3))
                .Add(New OleDbParameter("@NumExo", OleDbType.Integer, 2))
                .Add(New OleDbParameter("@Specialite_Etudiant", OleDbType.VarChar, 25))
                .Add(New OleDbParameter("@niveau_Etudiant", OleDbType.VarChar, 25))
                .Add(New OleDbParameter("@Classe_Etudiant", OleDbType.VarChar, 10))
                .Add(New OleDbParameter("@Pays_Région", OleDbType.VarChar, 25))
     
            End With
     
            'Attribution des valeurs aux paramètres
     
            With myCommand
     
                .Parameters("@Telephone_personnel").Value = Val(TelPersonnel.Text)
                .Parameters("@Telephone_personnel").Value = Val(TelPersonnel.Text)
                .Parameters("@Telephone_professionnel").Value = Val(TelProfessionnel.Text)
                .Parameters("@Telephone_mobile").Value = Val(TelMobile.Text)
                .Parameters("@Page_Web").Value = Mail.Text
                .Parameters("@Numero_telecopie").Value = Val(Telecopie.Text)
                .Parameters("@NumInscription").Value = Val(NumInscription.Text)
                .Parameters("@Telephone_du_contact_urgences1").Value = Val(TelUrgence1.Text)
                .Parameters("@Telephone_du_contact_urgences2").Value = Val(TelUrgence2.Text)
                .Parameters("@Tel_medecin").Value = Val(TelMedecin.Text)
                .Parameters("@Adresse_Etudiant").Value = Adresse.Text
                .Parameters("@Nom").Value = Nom.Text
                .Parameters("@Prenom").Value = Prenoms.Text
                .Parameters("@Lieu_Naissance").Value = LieuNais.Text
                .Parameters("@Ville").Value = Ville.Text
                .Parameters("@Code_Postal").Value = CP.Text
                .Parameters("@Departement").Value = Departement.Text
                .Parameters("@Remarques").Value = Remarque.Text
                .Parameters("@IDEtudiant").Value = Val(IDEtudiant.Text)
                .Parameters("@Date_Inscription").Value = CDate(Date_Inscription.Text)
     
                .Parameters("@contact_urgence").Value = Val(ContactUrgence.Text)
                .Parameters("@Relation_urgences").Value = RelationUrgence.Text
                .Parameters("@Nom_medecin").Value = NomMedecin.Text
                .Parameters("@Allergies").Value = Allergies.Text
                .Parameters("@Medicaments").Value = Medicaments.Text
                .Parameters("@Etablissements").Value = ComBoBoxEtab.Text
                .Parameters("@NumExo").Value = ComboBoxExo.Text
                .Parameters("@Specialite_Etudiant").Value = ComboBoxSpecialite.Text
                .Parameters("@niveau_Etudiant").Value = ComboBoxNiveau.Text
                .Parameters("@Classe_Etudiant").Value = ComboBoxClasse.Text
                .Parameters("@Pays_Région").Value = ComboBoxPays.Text
     
     
            End With
     
            Try
     
                'Execution de la requête
                myCommand.Connection.Open()
                myCommand.ExecuteNonQuery()
                myCommand.Connection.Close()
     
     
                MsgBox("Inscription effectuée!", MsgBoxStyle.Information)
            Catch ex As Exception
                MsgBox(ex.Message)
     
     
     
            End Try

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il faudrait nous dire à quelle ligne ca plante
    m'enfin ca a l'air simple comme soucis

    et retire moi c'est Val() de partout, c'est pas très .net

    il est aussi possible de gagner un peu de place avec


    mycommand.parameters.Add("@parametre",type).value = cint(textbox.text)




    enfin ton erreur vient du fait qu'un textbox ne contient pas un nombre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Lorsque je remplace val par cInt j'ai le message d'erreur dès la première ligne.


    La conversion de la chaîne "" en type 'Integer' n'est pas valide. je crois que c'est parceque mon telPersonnel.text est vide. Comment faire pour resoudre les cas ou un champ est vide. J'ai également un problème avec HeureInscription.text qui contient l'heure d'inscription et DateInscription qui contient la date d'inscription

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     With myCommand
     
                .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
                .Parameters("@Dateinscription").Value = CDate(Dateinscription.Text)
                .Parameters("@HeureInscription").Value = CDate(HeureInscription.Text)

  4. #4
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par sycoulibaly Voir le message
    Lorsque je remplace val par cInt j'ai le message d'erreur dès la première ligne.


    La conversion de la chaîne "" en type 'Integer' n'est pas valide. je crois que c'est parceque mon telPersonnel.text est vide. Comment faire pour resoudre les cas ou un champ est vide.
    Ben voilà tu as la réponse!
    Chaîne vide ne peut être convertie en type integer.

    Pour ça tu fais un traitement de la saisie utilisateur, si c'est vide, tu affiches soit un message d'erreur, soit tu remplaces la chaîne vide par zéro.
    Ou autre solution si le champ n'est pas obligatoire, alors lorsqu'il est null tu passes dans une autre requête qui l'initialise à null dans ta BDD.

  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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Il te suffit de contrôler ce que contien ton textBox...
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If TelPersonnel.Text.Equals("") Then
    .Parameters("@Telephone_personnel").Value = 0
    Else
    .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)  
    End If
    tu peux (doit) aussi contrôler que ce que l'utilisateur rentre est bien du numérique...
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub TelPersonnel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TelPersonnel.KeyPress
            If Not Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
                'Tous les caractères non numériques ne sont pas traités sur le TextBox.
                e.Handled = True
            End If
        End Sub

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    J'ai fais exactement ce que vous avez dit mais j'ai le message suivant:

    Echec de la conversion de la valeuur de paramètre d'un String en Int 32

    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
    With myCommand
                If TelPersonnel.Text.Equals("") Then
                    .Parameters("@Telephone_personnel").Value = 0
                Else
                    .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
                End If
     
                If TelProfessionnel.Text.Equals("") Then
                    .Parameters("@Telephone_professionnel").Value = 0
                Else
                    .Parameters("@Telephone_professionnel").Value = CInt(TelProfessionnel.Text)
                End If
                If TelMobile.Text.Equals("") Then
                    .Parameters("@Telephone_mobile").Value = 0
                Else
                    .Parameters("@Telephone_mobile").Value = CInt(TelMobile.Text)
                End If

  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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Regarde où l'erreur est déclenchée, met un point d'arrêt et regarde la valeur qu'il y a dans la propriété .text de tes textbox...

    EDIt : juste par hasard, dans les textbox de numéro de tel, tu ne rentrerais pas des / ou . ?

    REEDIT : au début de ta méthode tu devrais absolument tester si tes textbox qui vont être converti en int contienne bien que du numérique
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Not IsNumeric(TextBox1.Text) Or Not IsNumeric(TextBox2.Text) Then
                    MsgBox("Veuillez vérifier que...")
                    Exit Sub
                End If

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    d'ailleurs, un numéro de téléphone enregistré en integer c'est pas top
    ca retire le 0 qu'il y a devant, étant donné que 01 = 1
    et au passage ca évite le soucis, un textbox vide s'enregistrera sans problème dans un varchar
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    +1

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Chers amis
    j'ai suivi à la lettre toute vos recommandations. Mais toujours la même erreur.
    Il affiche dans une boîte de dialogue le message suivant:

    Echec de conversion de paramètre string en Int32. Et qt je ferme la boîte de dialogue rien n'apparait comme remarque ds le code. Même qt je marque un point d'arrêt

    Je vs embête mais j'avoue que moi même je ne comprends plus rien.
    1er cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If TelPersonnel.Text.Equals("") Then
                    .Parameters("@Telephone_personnel").Value = 0
                Else
                    If Not IsNumeric(TelPersonnel.Text) Then
                        MsgBox("Veuillez vérifier que...")
                        Exit Sub
                    Else
                        .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
                    End If
     
                End If
    2ème cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                    If Not IsNumeric(TelPersonnel.Text) Then
                        MsgBox("Veuillez vérifier que...")
                        Exit Sub
                    Else
                        .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
                    End If

  11. #11
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    C'est où exactement que le programme plante? sur quelle ligne?
    je supose que c'est sur la ligne : .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
    Quand tu met ton point d'arret sur cette ligne et que tu insère un espion sur TelPersonnel.Text
    que contient-il?

    (ou plus simple si tu ne connais pas ces méthodes de debugage, tu met un msgbox("'" & TelPersonnel.Text & "'") avant la ligne qui plante bien sûr...)

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Justement l'erreur est à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
    Qt je marque un point d'arrêt à cette ligne. j'ai l'information suivante lorsque je passe avec le curseur sur TelPersonnel.Text:

    TelPersonnel.text ""

    Sinon qt tous les champs sont remplis il n'ya pas de problème

  13. #13
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Tu devrais essayer de caster ton n° de téléphone dans un entier sur 64 bits au lieu de 32.

    Je pense que ton n° de téléphone dépasser la valeur maximale autorisée pour un entier sur 32 bits et c'est pour ça que ça explose.
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  14. #14
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Le problème de conversion en int64 ne se pose pas parce qu'il n'ya pas de overflowexception.
    Je pense que de simple n° Téléphone peuvent être en Int32

  15. #15
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par sycoulibaly Voir le message
    Le problème de conversion en int64 ne se pose pas parce qu'il n'ya pas de overflowexception.
    Je pense que de simple n° Téléphone peuvent être en Int32
    Ben ça dépend de la valeur de ton n°.
    T'as quoi comme valeur pour ton n° de téléphone quand ça explose ?
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  16. #16
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    La question ne se pose pas (même si c'est très bien pensé) car si l'on regarde ce que sycoulibaly à écris :
    Citation Envoyé par sycoulibaly Voir le message
    Justement l'erreur est à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
    Qt je marque un point d'arrêt à cette ligne. j'ai l'information suivante lorsque je passe avec le curseur sur TelPersonnel.Text:

    TelPersonnel.text ""

    Sinon qt tous les champs sont remplis il n'ya pas de problème
    Moi ce que je te conseillerais vraiment, c'est de mettre tes numéro de téléphone en string pour les raison que sperot51 t'a présisé :
    un numéro de téléphone enregistré en integer c'est pas top
    ca retire le 0 qu'il y a devant, étant donné que 01 = 1
    aussi non je ne comprend pas pourquoi il ne passe pas dans ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TelPersonnel.Text.Equals("") Then
    si celui-ci est bien vide...

  17. #17
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Numérique access 2007
    D'ailleurs le problème se pose avec ts les champs numérique lorsque leur texbox est vide

  18. #18
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Je ne comprend pas ta réponse?
    si on regarde ce code les test sont bon...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If TelPersonnel.Text.Equals("") Then
    .Parameters("@Telephone_personnel").Value = 0
     Else
     If Not IsNumeric(TelPersonnel.Text) Then
     MsgBox("Veuillez vérifier que...")
     Exit Sub
     Else
     .Parameters("@Telephone_personnel").Value = CInt(TelPersonnel.Text)
     End If
    End If
    on aurais put mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if TextBox1.Text.Length = 0 then
    mais ca ne change rien car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TelPersonnel.Text.Equals("") then
    fonctionne très bien chez moi...

  19. #19
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Mon problème est le suivant:
    Lorsque je remplis tous les texbox, pas de pbm pour l'ajout d'enregistrement.
    Mais lorsque j'ai un texbox numérique vide "", le message d'erreur se présente:

    erreur de conversion de la valeur de paramètre string en int32

    Je peux changer les numériques en texte,Mais avec un champ numérique comment je fais pour resoudre ce genre de problème.
    Voilà mon problème.
    NB:je programme sur vb.net express 2008 et j'attaque une base access2007
    j'ai également essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if TextBox1.Text.Length = 0 then

  20. #20
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Je ne serais t'aider plus que cela !
    La propriété text renvoie bien un string.
    les string ont la méthode équals ou length qui permette de savoir si il sont vide, si cela ne fonctionne pas c'est bizarre...

    Ce qu'il te reste à faire alors c'est de contrôler ce que contient ton textbox, pour celà tu as différente méthode comme, entre autre, errorprovider (pour exemple regarde en bas de cette page) qui empeche de quitter la zone à certaine condition

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2010, 13h44
  2. Probléme conversion de paramétre
    Par bryce426 dans le forum C++
    Réponses: 4
    Dernier message: 08/01/2008, 13h58
  3. conversion de paramètres d'un plan
    Par bernard6 dans le forum Mathématiques
    Réponses: 3
    Dernier message: 23/07/2007, 15h03
  4. Réponses: 4
    Dernier message: 18/06/2007, 13h54
  5. Réponses: 3
    Dernier message: 04/06/2007, 09h31

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