Hallo WW,
hier behelfe ich mir immer eines Tricks: Ich verwende den SqlAdapter.Fill mit sinngemäß folgender Abfrage:
SELECT * FROM MyTableOfInterest WHERE 1=2
Resultat ist ein typisiertes DataTable (ohne Ergebniszeilen, weil 1 nie 2 ist ;-), das man dann mittels DataTable.Columns durchgehen kann. ColumnName und DataType lassen sich darin dann ablesen. Auch die Reihenfolge sollte übereinstimmen (wenn die SQL Statements die gleiche Order beinhalten).
Das ist m.E. die einfachste Möglichkeit die Datenbankstruktur auszulesen (es gibt noch mehr Möglichkeiten).
Grüße
Timo