我正在尝试获取特定数据表的列名。 我试过这段代码。
datagridFieldCreation.AutoGenerateColumns = false;
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter("select * from Add_Information ", con);
sda.Fill(dt);
datagridFieldCreation.DataSource = dt;
我正在获取表格中的完整数据。但我希望只逐列显示列名。任何人都可以帮助我吗?
答案 0 :(得分:1)
您可以使用ExecuteReader(CommandBehavior.SchemaOnly))
:
DataTable schema = null;
using (var con = new SqlConnection(connection))
{
using (var schemaCommand = new SqlCommand("SELECT * FROM Add_Information", con))
{
con.Open();
using (var reader = schemaCommand.ExecuteReader(CommandBehavior.SchemaOnly))
{
schema = reader.GetSchemaTable();
}
}
}
datagridFieldCreation.DataSource = schema;
查询仅返回列信息。使用SchemaOnly时, SQL Server的.NET Framework数据提供程序位于语句之前 使用SET FMTONLY ON执行。
列名称位于每行的第一列。
foreach (DataRow col in schema.Rows)
{
Console.WriteLine("ColumnName={0}", col.Field<String>("ColumnName"));
}
答案 1 :(得分:0)
您可以使用:
SELECT * FROM YOURTABLENAME WHERE 0=1
答案 2 :(得分:0)
可以肯定的是,这是一个简单的查询,它有一个条件语句总是返回false,所以每次执行查询时都不会提取任何行,只有你会得到的列,所以你可以轻松地将这些列放在你的的DataGridView。