如何使列名成为第一行
本文关键字:一行 何使列 | 更新日期: 2023-09-27 18:36:31
我有一个使用动态透视的查询,因此列名会根据数据而变化。我的代码根据查询结果生成一个.csv文件。我不知道如何制作标题,因为我无法对列名进行硬编码。是否可以以某种方式使查询结果的标头成为记录集的第一行?
谢谢。
补充:刚刚意识到,如果我不知道我有哪些列,我什至不知道如何在我的 C# 代码中获取数据......所以我不能做这样的事情:
result.AddRange(from DataRow dr in dt.Rows
select new DailyTransactionSheet
{
Serve = Convert.ToInt32(dr["Serve"]),
Remits = Convert.ToInt32(dr["Remits"]),
List = Convert.ToInt32(dr["List"]),
Billing = Convert.ToInt32(dr["Billing"]),
DollarSent = Convert.ToInt32(dr["DollarSent"]),
FileAck = Convert.ToInt32(dr["FileAck"]),
});
}
根据
注释:
基本上,您需要执行查询并从中获取有关列的信息,具体取决于您的执行方式,可以有以下几种选择:
SQLDataReader
获取结果,您可以从 GetSchemaTable GetSchemaTable.Columns
获取列信息
或
SqlDataAdapter.Fill(DataSet)
DataSet.Tables[0].Columns
- 您应该阅读有关 DataSet.Tables 的这些方法和属性
下面是来自 MSDN 的示例:
private void PrintRows(DataSet dataSet)
{
// For each table in the DataSet, print the row values.
foreach(DataTable table in dataSet.Tables)
{
foreach(DataRow row in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
Console.WriteLine(row[column]);
}
}
}
}