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

  1. #1
    Membre du Club
    erreur 'System.NullReferenceException' portant pas d'objet null
    bonjour :

    j'ai l'exception System.NullReferenceException sur la ligne ou j'affecte un dataview à un datagridview(la ligne soulignée), alors qu'en visualisant la dataview elle est rempli,
    avant ça marchait trés bien,je ne sais pas pourquoi j'ai cette erreur maintenant:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                oDA.Fill(oDS,"VUES");
                DataTable dt = oDS.Tables["VUES"];
                DataView dataView1 = new DataView(dt);
                dataGridView1.DataSource = dataView1;
                dataGridView1.AutoGenerateColumns = true;
                dataGridView1.Refresh();


    et voici toute l'erreur:
    Une exception non gérée du type 'System.NullReferenceException' s'est produite dans access_app.exe

    Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.


    merci bcp,bonne soirée

  2. #2
    Membre averti
    Bonjour,

    ce n'est pas la DataView qui pose problème mais la DataGridView.
    DataGridView1 ne doit référencer aucune instance de DataGridView.

  3. #3
    Membre du Club
    merci bouvda pour ta réponse rapide
    je ne vois toujours pas , ou peut bien etre l'erreur
    j'utilise la même methode pour un autre datagridview et ça marche impecabble.
    peux tu speicfier encore un peu plus?

  4. #4
    Membre averti
    Et bien au moment d'exécuter la ligne de code, DataGridView1 vaut null. Donc soit l'instance n'est jamais créée (le constructeur n'est pas appelé) soit avant d'arriver à cette ligne pendant l'exécution, la référence vers l'instance est passée à null.
    Il faut debugger, mettre des points d'arrêts pour voir à partir de quand la référence vaut null.

  5. #5
    Membre du Club
    même si la datagridview a été créee graphiquement ..?
    sinon
    si ça marche toujours pas je vais la creer par code.
    merci

  6. #6
    Membre averti
    Citation Envoyé par sarah_s
    même si la datagridview a été créee graphiquement ..?
    Logiquement si elle est créée graphiquement, elle est bien instanciée en effet...

  7. #7
    Membre du Club
    ouf tu me rassure,merci
    quel est le probléme je ne vois pas?
    je commence à secher j'ai testé ,retesté , elle est tetue cette datagridview

  8. #8
    Membre expérimenté
    Citation Envoyé par bouvda
    Logiquement si elle est créée graphiquement, elle est bien instanciée en effet...
    Pas forcément non.

    Le datagridview est effectivement instancié, ça veut pas dire que datagridview1 (la variable) fait référence à l'instance de la datagridview.

    Exemple :

    datagridview1 = null; <-- ça ne va pas désinstancier la datagridview.
    datagridview1.DataSource = truc; <-- nullreferenceexception.

  9. #9
    Membre du Club
    en tous cas dés que je tape les deux premiére lettres, l'aide me propose dataGridView1 at aprés le '.' je peux accéder aus propriétés..
    le plus , c'est que ça a marché avant ,
    bizarre
    sinon une propostion.?
    gracias

  10. #10
    Expert éminent
    Citation Envoyé par davcha
    Pas forcément non.

    Le datagridview est effectivement instancié, ça veut pas dire que datagridview1 (la variable) fait référence à l'instance de la datagridview.
    Ou alors qu'on éssaye d'accéder au DataGridView1 avant l'appel à InitializeComponents ...

  11. #11
    Rédacteur

    Citation Envoyé par sarah_s
    en tous cas dés que je tape les deux premiére lettres, l'aide me propose dataGridView1 at aprés le '.' je peux accéder aus propriétés..
    La complétion de code du Visual studio n'a rien à voir avec ton problème .

    Sinon effectivement le coup de d'utiliser la variable avant le InitializeCompoment() est très classique
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  12. #12
    Membre du Club
    eh oui j'ai fait l'erreur classique: appeler la méthode utilisant le dataGridView avant InitializeComponent();
    en déplaçant une seule ligne en bas le probléme est reglé.
    merci à vous bonne journée.


  13. #13
    Candidat au Club
    System.NullReferenceException


    j'appelle cette methode et on me dit qu'il est null............... merci de votre aide
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     public void mostrar()
            {
     
                System.Console.Write("{");
                foreach (double elemento in fila)
                {
                    System.Diagnostics.Debug.Assert(fila != null, "Assert: engine != null");
                    System.Console.Write(elemento + "; ");
                }
                System.Console.Write("}");
            }