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 :

nullreferenceexception lors de la fermeture de l'application


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 6
    Par défaut nullreferenceexception lors de la fermeture de l'application
    Bonjour.

    Je suis en train te travailler sur un petit projet perso qui est loins d'être fini mais je tombe déjà sur un probème et je n'arrive pas à trouver la solution.

    Je m'explique:

    Dans mon application j'utilise une base de donnée Access. Au démarrage de l'application, je test via la connexion à la base de donnée (fichier dbfunctions) si je trouve la base de donnée (le chemin est stoqué dans un fichier .ini).

    Si je ne la trouve pas, j'ouvre une form (frmOptions) et je propose de complèter le chemin d'accès.
    Seulement au moment de cliquer sur OK, le chemin se met bien à jour dans le fichier .ini et donc au prochain démarrage tout est ok, mais le application.exit ne fonctionne me fait une erreur nullreferenceexception et fait planter l'application dès que je veux changer le chemin de la base.

    L'application est disponnible ici : http://www.calipanpan.ch/loan_manager/Loan_Manager.zip

    Je travail sous Visual Studio 2005 Sp1 et net 2 sp1.

    Voila si quelqu'un à une idée cela m'aiderait beaucoup, car sur le web je n'ai rien trouvé qui puisse m'aider concrètement.

    Salutations.

    Yann

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 68
    Par défaut
    bonjour,

    je ne sais pas si sa peut aider mais j'ai eu la même erreur en voulant effectuer une operation sur le port com (ouvrir ou fermer le port).

    j'ai du utilisé le bloc Try Catch Finally pour gerer les erreur produite, en fesant cela si une erreur se produit tu peux y inserer une msgbox pour indiquer ou le probleme se pose.

    il se peux que cela ne t'aide pas des masse car je debute juste en vb mais dans mon cas ca ma permis de regler mes soucis

    bonne programation a+

  3. #3
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Tu pourrais nous mettre ici la zone de code qui déclenche l'erreur en précisant sur quelle ligne exactement elle se produit ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Salut
    Ton problème vien de la :

    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
    Private Sub cmdOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOk.Click
     
     
            If txtFilePath.Text <> "" Then
     
                writeInIni("DATABASE", "path", txtFilePath.Text)
     
                MessageBox.Show("Options successfully updated!" + Chr(13) + "The application will close, please launch it to reload the database", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
     
                Application.Exit()
     
     
            End If
     
            Me.Close()
     
        End Sub
    Plus précisément de la ligne :
    Je panse que tu veux aller un peut vite dans les fermetures. Je n'est pas fait plus de recherche par manque de temps.

    A+

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Bon je complète un peut le fond de ma pansé.

    Tu charge un premier formulaire.
    Au cours du chargement tu charge un deusième formulaire
    Puis tu ferme l'appli avant que ton premier formulaire soit complètement chargé.

    Une question :
    pourquoi tu quitte l'appli ?
    A tu essayé de récuperer le chemin de ta base dans une variable que tu mettrais a jour a la fermeture de ton deusième formulaire et l'utiliser pour terminer le chargement du premier formulaire ?

    Ok cela fait 2 questions

    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 6
    Par défaut
    Hello,

    Merci pour ton aide, suite à tes conseils j'ai fait des changements, je recharge le chemin entré par l'utilisateur tout de suite après la fermeture de la fenètre Option et je relance la connexion à la base de données dans le catch (où l'execution reprend à la fermeture de la fenêtre option) avec le bon chemin.

    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
     
     
            sConnection = "Provider=Microsoft.jet.OLEDB.4.0;"
            sConnection &= "Password=;User ID=Admin;"
            sConnection &= "Data Source=" & My.Settings.database_path
     
            myConnection = New OleDbConnection(sConnection)
            Try
                myConnection.Open()
            Catch ex As OleDbException
                MessageBox.Show("The application can't found the database " + Chr(13) + "Please indicate the file path of the database", "Database error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                'Display the options dialog
                frmOptions = New frmOptions
                frmOptions.ShowDialog()
                'Clear the memory used by frmOptions
                'frmOptions = Nothing
     
                sConnection = "Provider=Microsoft.jet.OLEDB.4.0;"
                sConnection &= "Password=;User ID=Admin;"
                sConnection &= "Data Source=" & My.Settings.database_path
                myConnection = New OleDbConnection(sConnection)
                myConnection.Open()
     
            End Try
    Merci beaucoup.

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

Discussions similaires

  1. Evènement lors de la fermeture de l'application
    Par irons dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 14/01/2014, 14h13
  2. Réponses: 3
    Dernier message: 24/06/2012, 20h36
  3. Access Violation lors de la fermeture d'une application
    Par Jean-Jacques Engels dans le forum EDI
    Réponses: 1
    Dernier message: 22/06/2011, 12h33
  4. [EasyPHP] Pb lors de la fermeture de mon application avec ou sans fermeture de Easy Php
    Par Lolie11 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/06/2007, 10h38
  5. Problème lors de fermeture d'une application
    Par midoENSI dans le forum MFC
    Réponses: 3
    Dernier message: 10/04/2007, 06h59

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