2012-06-22 15 views
13

chcę listę kolumn tabeli uzyskać stosując GetSchema metodę w ADO.Net, mój kod jest:Uzyskaj kolumn tabeli przez GetSchema() metoda

var dtCols = con.GetSchema("Columns", new[] { "DBName", "TableName" }); 

i dostaję pustą DataTable, co jest problem?

+1

zatrzaskowy, w ciemności, ale próby 'var dtCols = con.GetSchema ("kolumny" nowy [] { "DbName" null "TableName"}); ' – Matthew

+0

Dzięki Matthew, który zadziałał, proszę napisać swoje rozwiązanie jako odpowiedź. –

Odpowiedz

22

Musisz podać parametr ograniczenia "właściciela".

var dtCols = con.GetSchema("Columns", new[] { "DBName", null, "TableName" }); 
0

Czy obie te odpowiedzi być uogólnione trochę z:

dtCols = con.GetSchema("Columns", new[] {con.DataSource, null, "TableName"});

Jest to przy założeniu, że „TableName” to nazwa tabeli, które chcesz schematu dla.

+0

Wygląda na to, że prosisz o wyjaśnienia? Odpowiedzi są zarezerwowane dla odpowiedzi na pytanie, a nie komentowania lub szukania pomocy. – rayryeng

+0

Jeśli twoje połączenie jest już podłączone do bazy danych, możesz również podać wartość zerową dla nazwy bazy danych zamiast con.DataSource. – Scott

0

miałem podobny problem, następujące pracował ..

using(SqlCommand command = new SqlCommand(sqlText, con)) { 
    var sqlReader = command.ExecuteReader(); 
    var a = sqlReader.GetColumnSchema();       
}