2012-06-22 15 views
13

Quiero obtener la lista de columnas de una tabla usando GetSchema método en el ADO.Net, mi código es:Obtener columnas de una tabla por el método GetSchema()

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

y me sale un vacío DataTable, ¿cuál es la ¿problema?

+1

puñalada en la oscuridad, pero trata de 'dtCols var = con.GetSchema ("Columnas", nuevo [] { "DBName", null, "TableName"}); ' – Matthew

+0

Gracias Matthew que ha funcionado, por favor, escriba su solución como una respuesta. –

Respuesta

22

Debe especificar un parámetro para la restricción de "propietario".

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

Podría ambas respuestas pueden generalizar un poco con:

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

Esto es suponiendo que "TableName" es el nombre de la tabla que desea para el esquema.

+0

Parece que está pidiendo una aclaración? Las respuestas están reservadas para responder la pregunta, no para comentar o buscar ayuda. – rayryeng

+0

Si su conexión ya está conectada a la base de datos, también puede especificar un nulo para el nombre de la base de datos en lugar de con.DataSource. – Scott

0

tuve un problema similar, los siguientes trabajaron ..

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