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

Framework .NET Discussion :

[SQLServer] Obtenir la description d'un champ d'une table


Sujet :

Framework .NET

  1. #1
    Membre éclairé
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Par défaut [SQLServer] Obtenir la description d'un champ d'une table
    Bonjour,

    Savez-vous comment obtenir la description associée à un champ d'une table dans SQL Server 2005 en C# ?

    Peut-on utiliser GetOleDbSchemaTable ?

    Merci bien !
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bonjour

    Tout d'abord, il n'y a absolument aucune raison valable d'utiliser les objets OleDb avec Sql Server alors que tu as un client natif (pour info, la différence de temps de réponse est facilement de 100%).

    Ensuite pour récupérer le schema d'une table ou d'un dataset tu peux utiliser la méthode GetSchemaTable sur un DataReader, ou faire un FillSchema sur un DataSet.

    A noter que quand tu charges des tables dans un dataset, le schema est toujours chargé, mais que FillSchema permet de charger le schema sans charger les données.

    A noter aussi que le GetSchematable du DataReader retourne une table qui est un schema (avec une ligne par champs de la table), rien à voir avec le schema interne du DataSet.

    La SchemaTable du DataReader ets un poil plus complexe à exploiter mais fournit plus d'informations.

    cf MSDN pour les détails.

  3. #3
    Membre éclairé
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Par défaut
    Mais j'ai également besoin de lister les tables existantes au sein d'une base de données d'où l'utilisation du GetOleDbSchemaTable.
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Ce n'est pas un motif valable. Tu as la méthode GetSchema sur l'objet SqlConnection, qui sert précisément à cela.

    Encore une fois, il n'y a aucune raison d'utiliser les accés via OleDb quand tu dispose d'un provider spécifique à la base.

  5. #5
    Membre éclairé
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Par défaut
    Cette méthode me donne effectivement plus d'informations, par contre je ne vois toujours pas comment obtenir le descriptif associé à un champ.

    Avez-vous une solution ?
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Tu cherches à récupérer la propriété "Description" des colonnes si je comprends bien ?

    Dans ce cas, sur une colonne donnée, il faut aller chercher les ExtendedProperties, et la propriété qui contient la description du champs c'est "MS_Description"

Discussions similaires

  1. [VB6 - Access]Récupérer description des champs d'une table
    Par New dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/11/2014, 14h53
  2. Réponses: 4
    Dernier message: 14/05/2010, 16h29
  3. comment obtenir la liste des champs d'une table
    Par richard038 dans le forum SQL
    Réponses: 4
    Dernier message: 13/02/2009, 18h28
  4. [DB2]Obtenir tous les noms des champs d'une table
    Par ptr83 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/11/2006, 09h31
  5. Description des champs d'une table
    Par AlexB59 dans le forum SQL
    Réponses: 1
    Dernier message: 24/01/2006, 09h04

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