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 :

[C#.NET] Remplir un DataGrid a partir d'un répertoire, help please !


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut [C#.NET] Remplir un DataGrid a partir d'un répertoire, help please !
    Bonjour,

    Je souhaite remplir un DataGrid avec une liste de fichiers obtenue avec

    Si j'ai bien compris le concept du datagrid, il lui faut une source qui doit etre un DataSet ou un DataTable (corrigez-moi si je me trompe, ou s'il y a plus simple !)

    Maintenant, comment remplir ce DataSet ou DataTable avec ma liste de fichiers ? :/

    Merci !

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    Avec un

    str[] = Directory.GetFiles(path);

    et un

    monDataGrid.DataSource = str;

    Mon datagrid se remplit, mais les noms de fichier ne sont pas affichés dans aucune colonne (et il me rajoute une Colonne "Length" dans laquelle il remplit des valeurs pour chaque fichier)

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    Et en faisant:


    DirectoryInfo dirInfo = new DirectoryInfo(monChemin);
    DataGrid1.DataSource = dirInfo.GetFiles();

    ... il me remplit mon datagrid, mais il cree plein de nouvelles colonnes telles que "date de creation, taille, nom, etc."
    Je ne veux garder que le nom du fichier, et le faire afficher dans ma 1ere colonne

  4. #4
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Je sais pas ce qui ce passe quand on passe à DataGrid1.DataSource autre chose qu'un dataset ou un datatable, mais selon toi avec dirInfo.GetFiles() ca t'as rempli la grille. Bref vises ma proposition, Lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DataTable dt=new DataTable();   //Quelque part
    //...
    str[] = Directory.GetFiles("LeCheminDeMonDossier");
    dt.Columns.Add("Nom de fichiers",typeof(string));
    for(int i=0;i<str.length();i++) dt.Rows.Add(new object[] {str[i]});
    madatagrid.DataSource=dt;

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    Hmm merci ca avance, ca se concretise. Maintenant, j'aimerais ajouter ces données dans une column deja presente dans ma form, au lieu de les ajouter apres toutes les autres, dans une nouvelle colonne.

    C'est faisable comment ? J'ai regardé les 5 surcharges du column.add, mais cette methode ajoute une nouvelle colonne, et ne permet pas d'ajouter des données dans une colonne deja existante :/

  6. #6
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    J'ai l'impression que t'as pas comris le fonctionnement des DataTable, pour ajouter des données il faut utiliser MaDataTable.Rows.Add, c'est comme ça qu'on ajoute une ligne dans une datatable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Exemple datatable avec 2 colonne matricule, nom
    dt.Columns.Add("Matricule",typeof(int));
    dt.Columns.Add("Nom",typeof(string));
    //...
    DataRow dr=dt.NewRow();
    dr(0)=77;		//Matricule
    dr(1)="Molo";	//Nom
    dt.Rows.Add(dr);
    //Mais tu peux faire comme je l'ai fait précedment dans l'exemple sans passer par des DataRow
    dt.Rows.Add(new object[] {77,"Molo"});

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    On parle de 2 choses differentes je crois

    Mon idee de depart est de lister des fichiers dans une datagrid. Maintenant, il se trouve que pour remplir cette datagrid, il faut une datasource. Donc une DataTable.

    Maintenant, j'aimerais remplir ma DataGridView que j'ai positionnée dans ma Form avec les données de cette dataTable

    J'ai deja une colonne "Fichiers", je ne veux pas créer de nouvelle colonne dans mon datagridview

  8. #8
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    j'ai bien peur de ne pas avoir compris ta requête, mais je tente quandmême, tu dis que t'as déjà une colonne, je suppose que tu parle d'une colonne dans une DataTable, si c'est le cas tu n'a plus qu'à faire:
    MaDataTable.Rows.Add(New Object[] {MaValeur});

    Une autre remarque c'est que je suis encore sur le framework 1.0, et toi tu parles de DataGridView donc t'es sur le framework 2.0, je pense que y'aurait certainemnt plus simple avec sans passer par des DataTable.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    Alors je réexplique

    J'ai, avant de coder, fait un design rapide de l'interface. J'y ai dessiné un DataGridView (pas trouvé d'autre DataGrid), et j'y ai mis 5 colonnes, dont la 1ere est "Nom de fichier", et les 4 autres des attributs avec une checkbox par case. Demain, je posterai un screenshot.

    Maintenant, j'aimerais remplir ce Datagrid deja fait avec une liste de fichier d'un répertoire donné, ou les fichiers seraient listés dans la colonne "Nom de Fichier"

    Je ne sais pas si c'est plus clair ^^
    Je n'ai introdui une DataTable que pour pouvoir alimenter la DataGrid, ne voyant pas de moyen plus direct d'afficher mes fichiers.

  10. #10
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 22
    Points
    22
    Par défaut
    Probleme résolu:

    Il suffisait d'un "DataGridView.Rows.Insert()
    Pas besoin de DataTables !

    Merci !

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

Discussions similaires

  1. Remplir un datagrid a partir du sql
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 26/01/2008, 20h24
  2. Réponses: 2
    Dernier message: 02/03/2007, 14h04
  3. [ASP.Net] Remplir un DataGrid
    Par pinson dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 10/02/2007, 10h46
  4. [VB.Net] Remplir un combobox a partir du resultat d un autre
    Par josyde2006 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/10/2006, 17h46
  5. [VB.NET] Remplir un DataGrid manuellement ?
    Par dinbougre dans le forum Windows Forms
    Réponses: 9
    Dernier message: 04/02/2005, 18h29

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