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

C# Discussion :

DataGridView1 a été null


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 88
    Par défaut DataGridView1 a été null
    Bonjour tout le monde.

    J'utilise Visual Studio 2019 Community.

    J'ai un DataGridView dans un Contrôle Utilisateur Windows Forms Quand je lance mon programme tout fonctionne, ma Datagrid récupère les infos de ma base de données et les affiches correctement.

    J'ai un autre Contrôle Utilisateur Windows Forms qui me permet de rentrer des inputs dans des TextBoxs.

    Quand je Valide dans mes textboxs,je réalise la comptabilité, celle-ci est envoyée correctement sur ma Base de Donnée ( MySql - LocalHost ) et j'ai ma ligne de code qui permet de rafraîchir ma Datagrid et donc j'obtiens l'erreur suivante :

    System.NullReferenceException*: 'La référence d'objet n'est pas définie à une instance d'un objet.'

    dataGridView1 a été null.
    Voici mon code pour rafraîchir, aucunes erreur ici puisque c'est le même qui rafraîchit mon datagrid au départ.
    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
     static public void RefreshPaie(DataGridView dataGridView1)
            {
                try
                {
                    if (connection.State == ConnectionState.Closed)
                        connection.Open();
     
                    MySqlDataAdapter dataAdapter = new MySqlDataAdapter("SELECT * FROM historique_paie", connection);
                    DataTable datatable = new DataTable();
                    dataAdapter.Fill(datatable);
                    dataGridView1.DataSource = datatable;
                }
                catch (MySqlException exception)
                {
                    MessageBox.Show(exception.ToString());
                }
                finally
                {
                    connection.Close();
                }
            }

    J'ai beau chercher sur internet je ne comprends pas.
    Je vous remercie d'avance pour éventuellement m'aiguiller



    Nom : histo.png
Affichages : 453
Taille : 26,9 Ko


    Nom : Compta.png
Affichages : 459
Taille : 12,7 Ko

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Je vois une méthode statique avec un seul paramètre : dataGridView1
    D'où vient la variable connection ?

    1) Regarder l'appel à cette méthode pour vérifier ce qui est transmis à la méthode.
    2) Vérifier que c'est bien la ligne 11 qui plante

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 88
    Par défaut
    J'ai tout mais alors tout passe en public plus de static, pas mieu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public MySqlConnection connection = new MySqlConnection("Server=localhost; database=cap; user id=root; pwd=");
    Voici connection.

    Les données sont bien envoyés, il ne manque rien dans la base de donnée quand j'ai l'erreur.

    2) Vérifier que c'est bien la ligne 11 qui plante
    J'ai regarde sur le net, et pareil j'ai du mal a comprendre comment.

    Désolé de répondre tardivement, je n'avais pas vu qu'il y avait de nouveau message. Merci a toi de prendre le temps.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il faut apprendre à débugger (points d'arret, pas à pas, espions)
    ca permet de comprendre pourquoi il y a des erreurs et d'où elles viennent dans ton code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 88
    Par défaut
    C'est bien cette ligne oui qui plante

    dataGridView1.DataSource = datatable;
    Je fais des pas a pas.

    Enfaîte ce qui est drôle, au moment de valider j'ai donc ma datagrid qui est Null ( Comment ? impossible de dire, car toutes les cellules sont remplies) La est mon problème je ne comprends pas comment je pourrais verifier si par magie une etait devenue null )

    Mais en revanche en créant un bouton qui permet de rafraichir la DGV beh pas de soucis celle-ci se rafraîchit sans me faire d'erreur !!!

    C'est juste le faite de la rafraîchir d'un autre formulaire qui bug !!

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    La variable est envoyée en paramètre à la méthode. Le problème est donc dans la méthode appelante. Tu peux naviguer dans la pile des appels pour voir qui envoie nul et d’où il le sort.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  2. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23
  3. Tester si un champ est NULL
    Par titititi007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2003, 10h17
  4. [VB6] [BDD] Recordset et champ égal à Null
    Par Gr|ppen dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/03/2003, 10h00
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

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