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

Accès aux données Discussion :

[C#] Récupérer le nom des colonnes d'une datatable


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Points : 59
    Points
    59
    Par défaut [C#] Récupérer le nom des colonnes d'une datatable
    Bonjour,

    J'aimerais savoir comment récupérer le nom de colonne d'une datatable.

    Exemple si j'ai la requete suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select AA,BB FROM TABLE
    J'aimerai récupéré les valeurs 'AA' et 'BB'.

    Merci

  2. #2
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Salut Dai.Kaioh,

    Lors de la récupération des données dans ton DataTable, il faut à la suite du Fill de ton DataReader faire un FillSchema.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    myDatareader.Fill(mydatatable)
    myDatareader.FillSchema(mydatatable, SchemaType.Mapped)
    cela permet de récupérer toutes les informations concernant les colonnes de la DataTable.

    Pour avoir le nom de la première colonne par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    mydatatable.Columns.Item(0).ColumnName
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Points : 59
    Points
    59
    Par défaut
    Merci pour ton aide

    Je n'ai pas la propriété Item dans mon datatable.

    Je passe par un dataadapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
      string sChaineConnexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
     
            SqlConnection oConnection = new SqlConnection(sChaineConnexion);
            oConnection.Open();
            SqlCommand oCommande = new SqlCommand("select * FROM VUE");
     
            SqlDataAdapter oDataAdapter = new SqlDataAdapter(oCommande);
     
            DataTable oDataTable = new DataTable();
            oDataAdapter.Fill(oDataTable);

  4. #4
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Au temps pour moi ! il s'agit bien d'un DataAdapter

    Ton code me semble bon, tu devrais pouvoir faire appel à la méthode FillSchema

    Par contre tu n'as pas de propriété oDataTable.Columns.item ? Même après le fillschema ?

    Tu utilises quelle version du Framework ?
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  5. #5
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    pour reprendre la suit de ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DataTable oDataTable = new DataTable();
            oDataAdapter.Fill(oDataTable);
     
    ArrayList al = new ArrayList;
    Foreach(DataColumn dc in oDataTable.Columns)
          al.Add(dc.ColumnName);

  6. #6
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Points : 59
    Points
    59
    Par défaut
    Merci pour vos réponses !!!

    J'ai fais cela et c'est ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (DataColumn DC in DT.Columns) {
                    Feuille.Cells[1, i] = DC.ColumnName;
                    i = i + 1;
    }
    Par contre je n'ai pas la propriété oDataTable.Columns.item et j'utilises le FrameWork 2

  7. #7
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Je viens de comprendre... je t'ai donné du code VB.NET... Normal que tu ne retrouve pas les mêmes choses ! Je crois qu'il est temps que j'aille me coucher

    Heureusement Zeavan est là
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/09/2009, 03h03
  2. Réponses: 2
    Dernier message: 23/06/2005, 17h56
  3. récupérer le nom des champs d'une table d'une BDD-page web
    Par mathieu_r dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/06/2005, 14h02
  4. [JDBC]Nom des colonnes d'une table
    Par Guybrush dans le forum JDBC
    Réponses: 6
    Dernier message: 08/09/2004, 18h28
  5. [Firebird 1.5] nom des colonnes d'une table
    Par c0rwyn dans le forum SQL
    Réponses: 4
    Dernier message: 03/09/2004, 14h44

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