Exception en vb.net

Fermé
sahroucha Messages postés 1 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 18 avril 2016 - Modifié par jordane45 le 18/04/2016 à 00:31
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 19 mai 2016 à 19:37
lors de débogage de mon application j'eu cette exception


"Une exception non gérée du type 'System.ArgumentException' s'est produite dans Microsoft.VisualBasic.dll

Informations supplémentaires : L'argument 'Prompt' ne peut pas être converti en type 'String'."


après le code suivant
 
Private Sub Btnsauv_Click(sender As Object, e As EventArgs) Handles Btnsauv.Click
        If txtnom.Text = String.Empty Or txtpays.Text = String.Empty Or txtville.Text = String.Empty Or txttel.Text = String.Empty Or txtdesc.Text = String.Empty Or txtemail.Text = String.Empty Or txtclasse.Text = String.Empty Then
            MessageBox.Show("Il faut remplir tous les champs SVP !!! ")
        Else
            ouvrircnx()
            Dim rsql As String = "Insert into hotel (nomhotel,pays,ville,classe,tel,desc,email) values ('" & txtnom.Text & "','" & txtpays.Text & "','" & txtville.Text & "','" & txtclasse.Text & "','" & txttel.Text & "','" & txtdesc.Text & "','" & txtemail.Text & "')"
            MsgBox(rsql)
            Dim cmd As New OleDbCommand(rsql, cnx)
            Try
                cmd.ExecuteNonQuery()
            Catch ex As Exception
                MsgBox(ex)
            End Try
            fermercnx()
        End If
    End Sub

aidez-moi svp

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
29 avril 2016 à 07:36
Bonjour
si si c'est bien aussi de commencer une discussion par saluer.

A quel ligne se produit cette erreur?
0
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
Modifié par Kalissi le 19/05/2016 à 16:04
Bonjour,

quelques suggestions ...

Si tu développe en .NET, l'utilisation de la dll Microsoft.VisualBasic.dll est à proscrire, cette référence permet l'utilisation d'instruction VB6, or tu programme en .NET ou en VB6 ?

L'instruction MsgBox est une instruction VB6, MessageBox.Show est l'instruction de remplacement.

L'instruction "txtnom.Text = String.Empty" devrait plutôt être formuler
"Not (String.IsNullOrEmpty(txtnom.text)" et ainsi de suite.

Il serait aussi possible de dériver un textbox pour ajouter la propriété "Vide".
Dans la dérivation, dans la méthode textbox_Changed on test le contenu et on affecte la propriété "Vide" a True ou False.
Lors de l'évènement Load du formulaire on initialise toutes ces propriétés.

ensuite l'instruction devient :
If (txtnom.Vide OrElse txtpays.Vide OrElse ...) Then

Pour l'erreur il faut vérifier la connexion :

La chaine de connexion -> https://www.connectionstrings.com/

La syntaxe de la requête dépend de ta BD, il faut alors spécifier avec quel
BD tu travaille.

Une application par couche serait aussi préférable.

Une couche d'accès aux données (UAD - Unité d'Accès au Données) ou
(CDA - Control Data Acces), une couche de logique d'affaire (SLA - Service de Logique d'Affaire) et la couche de présentation (Le formulaire).

Accéder à une BD directement à partir de la couche de présentation est à éviter.

Enfin, c'est mon point de vue.

Ici, un exemple simplifié de mon cru (couche unité d'accès aux données et couche de présentation).
https://mon-partage.fr/f/3qJu82Zf/

K
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 mai 2016 à 19:37
Bonsoir, je plussoie, mais bon vu que depuis 1 moi il (elle) n'a pas daigné préciser à quelle ligne est l'erreur et saluer poliment, je ne me suis pas foulé autant que toi....
0