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

ASP.NET Discussion :

Classe DataSet: compréhension


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut Classe DataSet: compréhension
    Bonjour,

    Cherchant à charger des données depuis un fichier XML vers un GridView (et non depuis une base de donnée, comme c'est le cas très souvent), il me faut au préalable formatter les données: elles sont dans un format particulier dans le fichier XML.

    Je sais que la classe DataSet permet de stocker dans le cache des données. Ma question est comment cette classe était-elle constituée?

    Si j'ai bien compris, un DataSet contient des DataTables. Le DataTable, lui, contient des DataColumns, qui lui contient des DataRows.

    Si je suis cette logique, je dois:

    1. Créer mon DataSet
    2. Créer mes DataTables et les mettres dans mon DataSet
    3. Créer mes DataColumns pour chaque DataTables
    4. Ajouter des DataRows (logiquement il n'y a pas besoin de créer des DataRows, puisque une colonne contient de toutes facons des lignes)

    Comme j'ai quelques petits problèmes avec les DataSet, j'aimerais savoir si j'ai effectivement bien compris les DataSet et leurs structures.

    Merci bien!

    L.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Un DataSet contient des DataTable qui contiennent des DataRow.

    Les DataColumns sont utilisées pour connaître le nom de la colonne, son type.

    Il n'est pas rare d'écrire du code sans jamais se soucier des DataColumns.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Un DataSet contient des DataTable qui contiennent des DataRow.

    Les DataColumns sont utilisées pour connaître le nom de la colonne, son type.

    Il n'est pas rare d'écrire du code sans jamais se soucier des DataColumns.
    Ok, mais une table peut avoir plusieurs valeur (donc plusieurs colonnes). Comment tu fais alors pour connaître le nom des colonnes? Tu peux définir à un certains endroit le nom de la colonne?

    Si un ajoute des DataRow, comment tu fais pour dire que tel données va dans tel tables, si tu ne définis pas les tables?

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Comment tu fais alors pour connaître le nom des colonnes?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDataSet.Tables[0].Column[0]
    permet d'accéder à la première colonne sans connaitre son nom (à éviter). sinon, c'est quand tu créés ta DataTable mais selon la façon dont tu la charge, c'est pas toujours possible de définir soi-même.

    Si un ajoute des DataRow, comment tu fais pour dire que tel données va dans tel tables, si tu ne définis pas les tables?
    tu peux créer une DataRow à partir d'une DataTable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DataRow row = monDataSet.Tables[0].NewRow();
    //remplissage de la DataRow
    ....
    //
    monDataSet.Tables[0].Add(row);

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    On peut construire un DataRow avec un object[] (tableau d'objet).

    Le premier du tableau va dans la première colonne... le suivant dans la seconde... etc.

    Les DataColumns permettent de spécifier le ColumnName, mais on peut accèder à une valeur du DataRow soit par le nom de colonne, soit par son index.

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Aaaah, très bien!

    Donc c'est facultatif d'avoir des DataColumns? On peut ajouter des DataRows, sans avoir spécifier les DataColumns, en passant par sont index (ce qui implique une gestion un peut moins intuitive de l'accès aux valeurs à mon avis )

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    p-e me trompe-je mais la déclaration des DataColumn est obligatoire même si tu ne les utilises pas par la suite pour accéder aux données. vu que DataTable est censé être une réprésentation mémoire d'une table, les lignes sont forcément découpées en colonne car sinon tu n'auras pas de consistence

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/02/2011, 18h05
  2. Classes : question de compréhension
    Par kanabzh29 dans le forum Langage
    Réponses: 6
    Dernier message: 06/11/2008, 11h26
  3. [ADO.NET 2.0] BLL / Classe Partiel DataSet Typé
    Par stephane.net dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/01/2007, 08h58
  4. Problème de compréhension d'une classe
    Par goldorax113 dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2006, 22h50
  5. Réponses: 2
    Dernier message: 31/07/2006, 06h03

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