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 :

Problème après tri d'une colonne d'une DatagridView


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 18
    Par défaut Problème après tri d'une colonne d'une DatagridView
    Bonjour ,
    Je développe actuellement une application c# winform dans laquelle il y a une DataGridView (remplit à l'aide des données d'une bd MySQL).
    J'ai un menu Toolbar qui me permet de récupérer les différentes données de ma bdd .

    Par exemple :
    Au clique sur menu1 j'affiche les données de la table1 dans la datagridview
    menu2 -> table 2
    etc..

    Cependant lorsque l'on clique sur le Header d'une des colonnes de ce datagridview , la colonne est trié (il s'agit d'une propriété de base du composant) , cela fonction très bien par contre si je clique sur le header d'une de mes colonnes puis que je change de table l'application plante.

    Une exception non gérée du type 'System.NullReferenceException' s'est produite dans System.Data.dll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      for (int i = 0; i < list[0].Count; i++)
                    {
                        dtSource.Rows.Add(new object[] { i, list[0][i], list[1][i], list[2][i] });
     
                        for (int j = 0; j < 31; j++)
                        {
                            tabdata[j, i] = list[j][i];
                        }
                    }
    l'exeception a lieu au niveau de la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dtSource.Rows.Add(new object[] { i, list[0][i], list[1][i], list[2][i] })

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Est tu sur que list[0][i], list[1][i] et list[2][i] contient bien des données valide à ce moment, a voir en mode debug ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 18
    Par défaut
    Bonjour ericlm128 ;
    J'ai donc vérifié en mode debug en plaçant un point d'arrêt sur la ligne qui semble poser problème.
    La première fois que la boucle for s’exécute (i=0) , pas de soucis , list contient bien des données valide , le list.Count récupère bien le nombre d'élément présent dans ma bd.
    Ensuite à la 2éme exécution (i=1) l'erreur apparaît alors que les valeurs semble avoir été stocké dans la list.

    J'ai du mal a visualiser d'ou viens le problème parce que dans tout les autres cas de figure l'application fonctionne :'(
    Le problème viens vraiment que lorsque l'on clique sur le header d'une colonne pour trier cette dernière.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Salut, il faut plus de code on ne voit rien ici

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Donc que contient list[0][1], list[1][1] et list[2][1] ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je vient de voir un truc, est tu sur de ta syntaxe ?

    Tu compte le nombre de sous élément présent dans le premier élément de ta liste 'list[0].Count' et après tu interroge les autres éléments 'list[0][i], list[1][i], list[2][i]'.

    Je ne comprend pas cela, comment stock tu tes données ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      for (int i = 0; i < list[0].Count; i++)
                    {
                        dtSource.Rows.Add(new object[] { i, list[0][i], list[1][i], list[2][i] });

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  4. supprimer une ligne et une colonne d'une matrice
    Par nessing dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/08/2007, 15h42
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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