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 :

remplir un dataset à partir d'un fichier text en c#


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 50
    Points
    50
    Par défaut remplir un dataset à partir d'un fichier text en c#
    salut !!

    j'ai un fichier text qui a deux colonnes :nom et postnom . les colonnes sont séparées par le cartère "|".
    ma question est comment remplir un dataset à partir du fichier text ou ,si c'est possible, comment convertir un fichier text en dataset .

    merci

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Une solution :
    1. Il faut dans un premier temps traiter ton fichier texte pour récupérer les informations.
    2. Placer les informations dans une structure (dans un objet)
    3. remplir ton dataset

    Note (à ne prendre en compte que si tu n'es pas contraint par le format du fichier de données initial) :
    - si tu as la possibilité d'utiliser un fichier xml pour mettre tes données -> il existe alors des possibilités de remplir le dataset simplement

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    Comme le dit binoo, il faut d'abord traiter le fichier texte, pour ça je te conseil d'utiliser une methode du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    StreamReader sr = new StreamReader(monFichier);
    while(!sr.EndOfStream){
    string maLigne = sr.ReadLine();
    //Si on est sur qu'il y a 2 colonnes sinon faut faire des tests
    string nom = maLigne.Split('|')[0];
    string postNom = maLigne.Split('|')[1];
    //Traiter l'ajout dans le DataSet
    }
    sr.Close();

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    merci pour vos réponses mais si vous pouvez être plus explicite sur l'ajout dans le dataset .
    merci encore !

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Pour remplir un DataSet tu peux :
    - ajouter une Table à celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDataSet.Tables.add(monDataTable);
    où monDataTable est un DataTable.

    - monDataTable doit bien sur être créé : ajout de deux colonnes (nom et postnom) et des valeurs que tu as récupérés dans ton fichier text (as-tu des bases sur les DataTables, sinon commence par regarder cela : http://msdn2.microsoft.com/fr-fr/lib...le(VS.80).aspx)

    Remarque : Je ne sais pas quels sont tes objectifs exacts (remplir un dataGridView,...) mais si ton dataset est destiné à ne contenir que ces données, une simple DataTable peut faire l'affaire l'affaire.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    le sujet m'interresse également et tout comme tatikambwa j'aurai besoin d'éclaircissements (l'exemple sur msdn ne fonctionne pas, "SetDataBinding" n'étant pas une méthode ni propriété de DatagridView...)

    Berf, ayez pitié et montrez nous un minuscule exemple complet qui puisse nous servir de point de départ.

    Mille merci, vraiment.

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Si nous n'avons parlé de DataGridView jusqu'à présent c'est qu'il n'en a jamais été vraiment question jusqu'à ton post Un DataSet est en quelque sorte une représentation de données en mémoire (dans le cache).
    Il ne faut pas mélanger les choses, l'exemple msdn parle du DataSet et est appliqué au DataGrid et non au DataGridView

    Pour remplir le dataGridView à partir du DataSet, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDataGridView.DataSource = monDataSet;
    et il ne faut pas oublié de définir le DataMember, qui permet de spécifier le nom de la table du DataSet utilisé (car un DataSet, pour rappel, peut être constitué de plusieurs tables) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDataGridView.DataMember = monDataSet.Tables[0].TableName;
    Pour un exemple de code, je n'en ai pas sous la main. Il va falloir attendre un peu...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Pas de problème, j'attendrai.
    Merci bcp.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    binoo Remarque : Je ne sais pas quels sont tes objectifs exacts (remplir un dataGridView,...) mais si ton dataset est destiné à ne contenir que ces données, une simple DataTable peut faire l'affaire l'affaire.

    mon objectif est de remplir un dataset à partir d'un fichier txt. le dataset servira de source à un report.
    merci pour vos reponses et on attend le code

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Voici un exemple d'utilisation de DataGridView qui a pour source de données un DataSet :
    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
          // Création du DataSet
          DataSet ds = new DataSet( "MonDataSet" );
     
          // Création d'un DataTable que l'on va ajouter au DataSet
          DataTable maTable = new DataTable( "MaTable" );
     
          // Création de deux colonnes
          DataColumn dcol1 = new DataColumn( "Col1" );
          dcol1.DataType = typeof( string );
          DataColumn dcol2 = new DataColumn( "Col2" );
          dcol2.DataType = typeof( string );
     
          // Ajout des colonnes au DataTable
          maTable.Columns.Add( dcol1 );
          maTable.Columns.Add( dcol2 );
     
          // Ici les lignes du DataTable sont à remplir avec les données
          // issus du fichier texte (moi je fais ca avec des données exemples)
          maTable.Rows.Add( "Nom1", "Prénom1" );
          maTable.Rows.Add( "Nom2", "Prénom2" );
          maTable.Rows.Add( "Nom3", "Prénom3" );
          maTable.Rows.Add( "Nom4", "Prénom4" );
     
          // Ajout de la DataTable au DataSet
          ds.Tables.Add( maTable );
     
          // le DataGridView a pour source de données le DataSet et plus 
          // particulièrement la Table de nom "MaTable"
          dgv1.DataSource = ds;
          dgv1.DataMember = "MaTable";

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    merci binoo pour le code je l'essaierai et te donnerai les nouvelles

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 264
    Points : 144
    Points
    144
    Par défaut
    Une des difficultés de cet exercice est de connaître le nombre de lignes et de colonnes (sauf si connu a priori mais c'est rarement le cas).

    Et ça devient encore plus difficile si on ne connait pas a priori les délimiteurs (tabulation, espace, point virgule ...)

  13. #13
    Membre émérite
    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
    Points : 2 498
    Points
    2 498
    Par défaut
    Pour ma petite contribution je voudrais ajouter que l'on mélange souvent les notion de dataset et datatable

    Dans ce que tu explique, il me semble que le chargement d'une simple datatable suffit largement a ce que tu souhaire faire

    Tu lis un fichier TXT de deux colonnes et n lignes

    Tu remplis une datatable
    Tu affiche ta datatable dans un datagridview

    Si c'est bien ca que tu veux faire je t'envoie en exemple avant d'aller dormir

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/09/2010, 20h08
  2. Remplir une liste à partir d'un fichier texte
    Par leroidje dans le forum Langage
    Réponses: 1
    Dernier message: 01/07/2007, 08h41
  3. Comment remplir un xml à partir d'un fichier texte
    Par edophie dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2006, 23h05
  4. Réponses: 3
    Dernier message: 29/03/2006, 14h23
  5. comment remplir un jTable à partir d'un fichier texte
    Par @yoyo dans le forum Composants
    Réponses: 1
    Dernier message: 16/03/2006, 11h54

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