2009-04-19 2 views
5

Ich möchte diese Informationen für eine Mysql-Tabelle mit C#Wie bekomme ich alle Details über eine MySQL-Tabelle mit C#?

abrufen 1) Komplette Spaltendefinitionen einschließlich Name, Größe und Datentyp und zusätzliche Informationen wie null/nicht null, unsigned, automatische Inkrementierung, Standardwerte, wenn Daten Typ enum, die akzeptierten Werte

2) Alle Einschränkungen - Primär-/Fremd/Scheck/Einzigartige

3) Alle Indizes

I Spalte grundlegende Informationen erhalten kann über „beschreiben table_name“ Abfrage gegen die im Zusammenhang Datenbank.

aber wie Sie alle diese Informationen abrufen?

Grüßen, Anjan

Antwort

6

nur Abfragen für INFORMATION_SCHEMA werfen ...

Zum Beispiel Spaltendefinitionen zu erhalten:

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 

Werfen Sie einen Blick auf the information schema tables weitere Informationen zu erhalten.

Ich hoffe, es hilft.

2

können Sie SqlDataReader.GetSchemaTable() Methode verwenden, und dies ist nur für die 1) Option beantworten, aber dies kann unter Verwendung derselben Verbindung zu Ihrem Schema erfolgen, wenn die Verbindungszeichenfolge hat Option Standard-Datenbank (Schema) gesetzt. (Sie müssen keine separate Verbindung zum INFORMATION_SCHEMA-Schema erstellen).

Weitere Informationen zu dieser Methode finden Sie unter here und ein Beispiel, wie Sie sie verwenden können here.

Um alles über Ihr Schema oder Ihre Datenbanken zu erhalten, verwenden Sie SqlClientMetaDataCollectionNames Klasse.

Mehr Informationen zu Klasse here und Beispiel gefunden werden können, wie es benutzen here

Verwandte Themen