2009-04-19 7 views
5

Je veux récupérer ces informations pour une table mysql en utilisant C#comment obtenir tous les détails sur une table mysql en utilisant C#?

1) Définitions colonne complète, y compris le nom, la taille et le type de données et d'informations supplémentaires comme nulle/non nulle, non signé, increament automatique, les valeurs par défaut, si les données type est ENUM, les valeurs acceptées

2) Toutes les contraintes - primaire/étrangère/VÉRIFIER/Unique

3) Tous les indices

Je peux obtenir des informations de base concernant la colonne en utilisant la requête « décrire nom_table » contre la base de données.

mais comment récupérer toutes ces informations?

salutations, Anjan

Répondre

6

simplement jeter des requêtes sur INFORMATION_SCHEMA ...

Par exemple, pour obtenir les définitions des colonnes:

SELECT TABLE_NAME 
     , COLUMN_NAME 
     , DATA_TYPE 
     , CHARACTER_MAXIMUM_LENGTH 
     , CHARACTER_OCTET_LENGTH 
     , NUMERIC_PRECISION 
     , NUMERIC_SCALE AS SCALE 
     , COLUMN_DEFAULT 
     , IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 

Jetez un oeil à the information schema tables pour obtenir des informations supplémentaires.

Espérons que ça aide.

2

Vous pouvez utiliser la méthode SqlDataReader.GetSchemaTable() et ceci est seule réponse pour votre 1) option, mais cela peut être fait en utilisant une même connexion à votre schéma, si votre chaîne de connexion a l'option base de données par défaut (schéma) défini. (Vous n'avez pas besoin de créer une connexion séparée au schéma INFORMATION_SCHEMA).

Plus d'informations sur cette méthode peut être trouvé here et l'exemple comment l'utiliser here.

Pour tout savoir sur votre schéma ou vos bases de données, utilisez la classe SqlClientMetaDataCollectionNames.

Plus d'informations sur la classe se trouve here et par exemple comment utiliser here

Questions connexes