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

Windows Forms Discussion :

[vb.net] fermer l'application en cas de bug


Sujet :

Windows Forms

  1. #1
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut [vb.net] fermer l'application en cas de bug
    Alors voila mon problème, je pense que vous allez pouvoir m'aider.

    J'ai une application qui se connecte à une base sql au lancement, je veux que si elle réussie à établir la connection, le programme se lance et que dans le cas ou la connexion échoue, un petit msgbox nous dise byby !

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            ConnectDataBase()
     
            Dim str As String = "SELECT name from company"
            Dim Command As New SqlCommand(str, myConnection)
            Dim Reader As SqlDataReader = Command.ExecuteReader
     
    End Sub
    et ma fonction connect est défini avec un try !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Public Function ConnectDataBase()
            Try
                myConnection.ConnectionString = "database=" + databaseName + " ; server=" + serverName + " ; User ID=" + userId + " ; pwd=" + password
                myConnection.Open()
            Catch ex As Exception
                MsgBox("Connection failed : " & ex.Message, MsgBoxStyle.Critical)
                Application.Exit()
            End Try
        End Function
    et en fait le msgbox fonctionne mais pas le application.exit()

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Salut

    Essaie la fermeture de l'application en dehors du catch, soit en verifiant que le State de ta myConnection est bien "open", soit en retournant un booleen, declare en dehors du try-catch, que tu metterais a true ou false dans le catch (et tu referme l'appli en fonction)

    (et utilise un stringbuilder si t'as plus de 4 concatenations de texte a faire)

  3. #3
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    Oui il vaut mieux éviter les exit dans un catch ou un finally et faire l'opération quand on est sorti du bloc.

  4. #4
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    c'est vrai que j'ai remarqué que des exit sub ne marchais pas non plus.
    Pour la connection sa peux encore aller mais dans certains cas, sa va etre chiant a tester en dehosr du catch.
    pour la connection, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If (myConnection.State = 0)
    then
    exit.application()

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Salut,
    j'ai peut étre mal compris ton probléme, mais si tu faisait simplement un End à la place de Application.Exit().

    Comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Function ConnectDataBase() 
            Try 
                myConnection.ConnectionString = "database=" + databaseName + " ; server=" + serverName + " ; User ID=" + userId + " ; pwd=" + password 
                myConnection.Open() 
            Catch ex As Exception 
                MsgBox("Connection failed : " & ex.Message, MsgBoxStyle.Critical) 
               End
     End Try 
        End Function

  6. #6
    Membre régulier
    Profil pro
    Ingénieur de développement
    Inscrit en
    Avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur de développement

    Informations forums :
    Inscription : Avril 2005
    Messages : 169
    Points : 96
    Points
    96
    Par défaut
    J'ai de mon coté eu quelques soucis (dans certains cas) pour arriver à interrompre un programme (par exemple dans une boucle, le 'end' ne fonctionnait pas !!).
    Ce que j'ai trouvé qui fonctionne à tous les coups, c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.Environment.Exit(0)
    Ceci dit, je ne sais pas dans quel état je laisse la machine !!

  7. #7
    doccpu
    Invité(e)
    Par défaut
    Application.Exit() attend que tout les threads et toutes les boucles soient terminés avant de fermer l'application.
    si ça ne se ferme pas c'est qu'il y a autre chose qui tourne dans ton application !

    System.Environment.Exit(0) je suis pas sur mais je crois que sa crashe l'appli et renvoie le code spécifié !
    à savoir : MicroSoft considère toute valeur <> 0 comme un code d'erreur !

    perso je préfere "Application.Exit()".

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

Discussions similaires

  1. Fermer une application Windows
    Par telecnop dans le forum Langage
    Réponses: 20
    Dernier message: 28/06/2006, 21h15
  2. [VB.NET] Synchronisation via application.lock
    Par David.V dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/06/2004, 06h51
  3. [VB.NET] Fermer une popup depuis une webform ?
    Par Nycos62 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/04/2004, 10h19
  4. [VB6]Fermer une application avec VB
    Par Mylou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2003, 21h32
  5. Fermer une application à l'aide de OnIdle
    Par Thierry Rapp dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/08/2002, 12h44

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