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 :

Ajout de ligne DatagridView


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 44
    Points
    44
    Par défaut Ajout de ligne DatagridView
    Bonsoir à tous, je me trouves fasse à un problème que je n'arrive pas à résoudre :

    J'ai créé un datagridview, que j'ai lié à une list d'objet. Jusqu'à la tout va bien.
    Le problème est que peut importe le nombre d'objet présent dans ma liste, je n'en vois qu'un seul dans le datagridview ...

    Je ne vois pas d'où cela peut provenir.
    Je vous laisse un petit bout de code si cela peut vous aider :

    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
     
    private List<LigneCommande> MaListe = new List<LigneCommande>();
    dgvtest.DataSource = MaListe;
     
     SqlCommand CmdLigneFact = new SqlCommand("select * from contenir where Num_fact =" + Convert.ToInt32(cbbtest.SelectedItem.ToString()), Conn);
                    SqlDataReader DbReaderLigneFact = CmdLigneFact.ExecuteReader();
                    bool maLigneEtat = DbReaderLigneFact.Read();
                    //string MaLignefacture = "";
                    while (maLigneEtat)
                    {
                        LigneCommande LC = new LigneCommande();
                        Produit P = new Produit();
                        SqlCommand ProduitNom = Conn.CreateCommand();
                        ProduitNom.CommandText = "Select NOM_P from Produit where NUM_P=" + Convert.ToInt32(DbReaderLigneFact[2]) + ";";
                        P.NomProduit = ProduitNom.ExecuteScalar().ToString();
                        P.NumProduit = Convert.ToInt32(DbReaderLigneFact[2]);
                        LC.LeProduit = P;
                        SqlCommand NomTypeCmd = Conn.CreateCommand();
                        NomTypeCmd.CommandText = "Select NOM_TYPE from TYPE_CONDITIONNEMENT where NUM_TYPE =" + Convert.ToInt32(DbReaderLigneFact[0]) + ";";
                        LC.Conditionemment = NomTypeCmd.ExecuteScalar().ToString();
                        LC.Qte_Produit = Convert.ToInt32(DbReaderLigneFact[3]);                   
                        MaListe.Add(LC);
                        maLigneEtat = DbReaderLigneFact.Read();
                    }
    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    Bon j'ai trouvé sur le forum qu'on l'on peut faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dgvtest.DataSource = null;
    dgvtest.DataSource = MaListe;
    Et effectivement ça fonctionne mais bon je ne trouve pas ça très propre ....
    Donc je cherche toujours une solutions

  3. #3
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Pourquoi tu ne remplirais pas ta List avant de l'assigner à la DataSource de DataGridView ?

    Sinon, essaies un

  4. #4
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Essai en remplaçant ta List par une BindingList.
    Sinon le dgvtest.Refresh() devrait fonctionner.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponse pour ce qui est du :
    j'y avais pensé, le problème étant qu'il rafraichi seulement les lignes visibles, sans en ajouter.

    Je vais essayer de faire une BindingList. Je vous tiens informé.

    Encore merci.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    Problème résolu, la solution est effectivement une BindingList. Merci de votre aide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/03/2013, 11h53
  2. ajout de ligne datagridview
    Par Ashireon dans le forum VB.NET
    Réponses: 1
    Dernier message: 27/08/2012, 16h53
  3. Ajouter nouvelle ligne datagridview
    Par bidbid21 dans le forum VB.NET
    Réponses: 7
    Dernier message: 16/01/2012, 09h03
  4. [VB 2005][DatagridView] Ajouter une ligne par code
    Par RaelRiaK dans le forum VB.NET
    Réponses: 3
    Dernier message: 23/01/2007, 22h54
  5. [C# 2.0] DataGridView ajout de ligne à la volée
    Par blasme dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/04/2006, 11h05

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