Problème pour recupéré le status de la connection [Résolu]

Signaler
Messages postés
17
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
22 mai 2011
-
Messages postés
17
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
22 mai 2011
-
Bonjour,

J'essaye d'avancé en VB.net sur un projet que je me suis donné pour essayer d'apprendre le VB.net

alors je me suis fais une connection a un serveur Mysql grace a ODBC :

Donc j'importe ma Lib ODBC comme sa :

Imports System.Data.Odbc


Et voici mon code :

    Private Sub Connection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connection.Click
        Try
            Dim connStr As String = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;DATABASE=test;Password=root"
            Dim Connection As New System.Data.Odbc.OdbcConnection(connStr)
            Connection.Open()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, "Error...")
        End Try
    End Sub


Le problème est que j'arrive a afficher en cas d'erreur (avec le Try/Catch) mais j'aimerai faire une Msgbox dans le cas ou la connexion serai réussi.
Mais j'ai beau mettre des IF sa veux pas :( donc j'aimerai bien un coup de main s'il vous plait.

Merci ! =)

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Oui, et bien c'est ce que je te disais : Cet objet possède une propriété .State.
Il te suffit donc de la tester.
Un petit coup d’œil à l'aide en ligne t'aurait fait gagner du temps.

        Dim co_mysql As New System.Data.Odbc.OdbcConnection(connStr)
        Try
            With co_mysql
                .Open()
                Do While .State = ConnectionState.Connecting
                    Application.DoEvents()
                Loop
                If .State = ConnectionState.Open Then MsgBox("Connexion Ok")
            End With
        Catch ex As Exception
            ' ...
        End Try
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut

Regarde voir si ton objet "Connection" (*) possède une propriété .State.
Après le .Open, si le Catch ne s'est pas déclenché, il faudrait tester ce .State.
Je pense que, juste après un .Open, il doit être en "Connecting" et il faut attendre (Do-Loop) qu'il fournisse le statut "Connected".
Regarde voir dans les constantes de cet objet pour trouver les bonnes valeurs.

(*) Très mauvaise idée d'appeler une variable de manière aussi proche (voire égale) d'un mot clé du langage : gare aux erreur que cela peut entrainer.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
17
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
22 mai 2011

Merci pour ta reponse mais malheureusement sa ne veux pas :(

j'ai changer l'appel =) merci pour l'info ^^

    Private Sub Connection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connection.Click
        Try
            Dim connStr As String = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;DATABASE=test;Password=root"
            Dim co_myqsl As New System.Data.Odbc.OdbcConnection(connStr)
            co_myqsl.Open()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, "Error...")
        End Try
    End Sub


Alors du coup j'ai fais "co_mysql.State" mais State ne fais pas partie des Propriétés :'(
Messages postés
17
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
22 mai 2011

Désolé du doublons !

C'est pas
Dim co_myqsl As New System.Data.Odbc.OdbcConnection(connStr)
co_myqsl.Open()

Mais bien
Dim co_mysql As New System.Data.Odbc.OdbcConnection(connStr)
            co_mysql.Open()


Erreur de touche !

Ps: on ne peux pas éditer ?
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
PS : Attention à l'endroit où tu dimensionnes tes variables : Dans ton exemple, ta connexion n'est valide qu'à l'intérieur de ta Sub et disparaitra à la sortie.
Messages postés
17
Date d'inscription
mercredi 20 décembre 2006
Statut
Membre
Dernière intervention
22 mai 2011

Yes ! Merci Jack

J'ai sortis mes DIM de la Private sub et je les ai mis sous le "Public Class Form1" =)

Bref en tout cas merci ! :D