使DataTable中的第一行成为列的名称

时间:2012-01-03 13:18:02

标签: c# datatable

我试图将DataTable的第一行设置为列名。我在代码项目中使用GenericParsing library。问题是解析器为列设置了默认名称。

感谢。

3 个答案:

答案 0 :(得分:11)

我认为您需要以下内容:

foreach (DataColumn column in table.Columns)
{
    string cName = table.Rows[0][column.ColumnName].ToString();
    if (!table.Columns.Contains(cName) && cName != "")
    {
         column.ColumnName = cName;
    }

}

table.Rows[0].Delete(); //If you don't need that row any more

答案 1 :(得分:8)

这应该做你想要的:

DataRow firstRow = table.NewRow();
List<string> names = new List<string>();
foreach (DataColumn column in table.Columns)
{
    names.Add(column.ColumnName);
}
firstRow.ItemArray = names.ToArray();
table.Rows.InsertAt(firstRow, 0);

如果第一行已经存在并且您想要“覆盖”,则将第一行更改为:

DataRow firstRow = table.Rows[0];

删除最后一行。

答案 2 :(得分:0)

希望这会有所帮助,这将使你的所有行成为你的列标题

foreach (DataRow inRow in inputTable.Rows)
     {
         string newColName = inRow[0].ToString();
         outputTable.Columns.Add(newColName);
     }