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 :

DataGridView n'affiche rien


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut DataGridView n'affiche rien
    Bonjour à tous,

    Je poste ici mon code, tout bête, tout simple, mais qui ne marche pas.
    Aucun message d'erreur mais le DatGridView n'affiche rien.
    Pourtant le test qui figure maintenant en commentaire pour vérifier que le dataset est rempli renvoie bien le premier nom de ma table.
    Je ne comprends pas ce qui se passe.
    Merci d'avance de votre aide.

    Code :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
            void Remplir()
            {          
               DataSet ds= new DataSet();
                using (SqlConnection c = new SqlConnection("Data Source=AAESL-A7D3EA3C9\\SERV_LOCAL;Initial Catalog=APtest;Integrated Security=True;"))
                {
                   try
                   {
                     // ouvrir connexion
                    c.Open();
                    // créer adaptater
                    using (SqlDataAdapter a = new SqlDataAdapter("SELECT nom,prenom FROM PERSONNE", c))
                    {
     
                     // remplir dataset
                        a.Fill(ds,"personne");
     
                        /* test  pour voir si le dataset est bien rempli. ça marche !
                        DataRow ligne= ds.Tables["personne"].Rows[0];
                        string nom;
                        nom =ligne[0].ToString();
                        MessageBox.Show(nom);*/
     
                        // afficher dans le DatagridView  GrillePersonnes
                        this.GrillePersonnes.DataSource = ds.Tables["personne"];
                    }
                   }
                   catch (Exception ex)
                   {
                       MessageBox.Show(ex.Message);
     
                   }
                }
            }

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Il te manque un léger détail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.GrillePersonnes.DataBind();
    Juste aprés que tu lui donne la source de données.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    Merci mais ça ne marche pas.
    En fait, ce qui se passe est très bizarre...
    J'ai rajouté une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.GrillePersonnes.Dock = DockStyle.Fill;
    Depuis je vois bien le contenu rempli de ma grille à l'exécution mais l'emplacement du DataGridView en mode design reste affiché dessus; ça fait un rectangle plus sombre (exactement de la taille du DGV en mode design) qui cache une partie du résultat.
    J'ai beau fouiller sur le net, je ne trouve rien de semblable.
    Merci de votre aide

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Citation Envoyé par kokel Voir le message
    Merci mais ça ne marche pas.
    En fait, ce qui se passe est très bizarre...
    J'ai rajouté une ligne :
    this.GrillePersonnes.Dock = DockStyle.Fill;
    Depuis je vois bien le contenu rempli de ma grille à l'exécution mais l'emplacement du DataGridView en mode design reste affiché dessus; ça fait un rectangle plus sombre (exactement de la taille du DGV en mode design) qui cache une partie du résultat.
    J'ai rien compris !
    Ce qui est certain :

    1- Rien a voir avec le databind inutile proposé par nasimpat7
    2- Vraissemblablement un probleme dans le design de ta form !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    Je comprends que tu ne comprennes rien, c'est dur à expliquer et assez étrange !
    Sur ma Form il n'y a que le DataGridView avec les options par défaut : je crée une Form, je pose mon DGV dessus et tu as tout le code dans mon premier message.
    Et le résultat est le DGV bien affiché avec les données dedans et par dessus l'emplacment du DGV comme je l'ai posé en mode design qui en cache une partie.
    On voit les données parce que j'ai ancré le DGV à l'écran avec la ppté Dock sinon elles sont cachées sous le rectangle.
    Est-ce que je peux t'envoyer l'image en mp ?
    J'ai recommencé 20 fois et c'est tjs pareil. je finis par me demander si ce n'est pas un bug de VS.

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Est-ce que je peux t'envoyer l'image en mp ?
    Tu peux l'envoyer ici
    J'ai recommencé 20 fois et c'est tjs pareil. je finis par me demander si ce n'est pas un bug de VS.
    Ca m'étonnerais !
    Des DGV j'en ai fait des centaines, jamais vu ce que tu explique (mais que je vois mal)

    C'est quelle version du FW ??

    N.B. : TOUJOURS mettre le datasource d'un DGV a null avant une assignation

  7. #7
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    A mon avis tu a simplement fait une fausse manoeuvre et tu a ajouté DEUX DGV dans ta form !

    Pour en avoir le coeur net, efface (le) ou (les) et rajoute en UN et donne lui le bon nom

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    Oui c'est ce qu'il semble....
    Mais je t'assure qu'il n'y en a qu'une.
    J'ai supprimé et recréé la Form.
    Je suis allée voir dans le designer.
    J'ai même fait une nouvelle application.
    Toujours la même erreur...

    Merci en tout cas de tes réponses.

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Citation Envoyé par kokel Voir le message
    Oui c'est ce qu'il semble....
    Mais je t'assure qu'il n'y en a qu'une.
    J'ai supprimé et recréé la Form.
    Je suis allée voir dans le designer.
    J'ai même fait une nouvelle application.
    Toujours la même erreur...

    Merci en tout cas de tes réponses.
    Si c'est bien le cas alors c'est dans ton code qu'il faut chercher l'erreur !

    Quand et comment est appelé ta methode remplir() ?

    Meme si ca ne semble pas directement lié a ton problème, l'assignation de la source du dgv dans cette methode ne me semble pas judicieuse. J'aurais plutot retourné la DataTable dont tu te servira en dehors de cette methode !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    J'appelle la méthode Remplir() sur Form_Load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void ListePersonnes_Load(object sender, EventArgs e)
            {
                InitializeComponent();
                Remplir();
            }
    Je comptais créer ensuite une classe static du genre helper et y faire figurer une méthode retournant un DataTable. Je l'avais fait d'ailleurs mais ça ne marchait pas non plus et je suis revenue à ce qui est pour moi le niveau 0 pour que ça marche déjà comme ça.

  11. #11
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Et bien Voilà le problème !!!


    Pourquoi tu appelle

    Dans le Form_load()
    Ca doit se trouver dans le constructeur de ta form !!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    Oui !!! Que je suis bête !!!
    J'ai dû faire une fausse manip et après j'ai zappé.
    Du coup, bien sûr, j'avais 2 DGV
    Merci beaucoup à toi !

  13. #13
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Citation Envoyé par kokel Voir le message
    Oui !!! Que je suis bête !!!
    J'ai dû faire une fausse manip et après j'ai zappé.
    Du coup, bien sûr, j'avais 2 DGV
    Merci beaucoup à toi !
    Fais attention quand meme car on dirait que la fausse manip est sytématique

    Citation Envoyé par Kokel
    J'ai même fait une nouvelle application.
    Toujours la même erreur...

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

Discussions similaires

  1. Boot mais n'affiche rien
    Par log2n dans le forum Assembleur
    Réponses: 28
    Dernier message: 03/11/2005, 21h16
  2. Mon programme n'affiche rien!!!!
    Par matthieu5978 dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2005, 11h28
  3. pourquoi mon quickreport n'affiche rien ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 31/07/2005, 00h59
  4. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38
  5. Opengl n'affiche rien.
    Par Fugus02 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/01/2004, 15h41

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