获取表Ado.NET的列名

时间:2014-04-14 19:46:04

标签: datatable ado.net

我试图获取表的列名,但它只返回列名,例如TABLE_SCHEMATABLE_NAMETABLE_CATALOGTABLE_TYPE。 这是代码;

DataTable table = con.GetSchema("Tables", new string[] { null, null, "Contact" });
var columnNames = (from DataRow r in table.Rows
                               from DataColumn c in table.Columns
                               select c.ColumnName).ToList();

我需要将名字保存在列表中。谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

DataTable table = con.GetSchema("Columns", new string[] { null, null, "Contact" });

您必须指定Columns而不是Tables作为collectionName ...

您还应该将linq查询更改为以下内容:

var columnNames = (from r in tab.AsEnumerable() 
                        select r.Field<string>("COLUMN_NAME")).ToList();