在 C# 中打印整个 table

print an entire table in C#

我正在尝试打印 DataTable 的内容,从列 headers 开始,然后是 table 元组的内容。

output.Add($"Table : [{dataTable.TableName}]");
string strColumnNames = "";
foreach (DataColumn col in dataTable.Columns)
{
    if (strColumnNames == "")
         strColumnNames = col.ColumnName.PadLeft(col.MaxLength - col.ColumnName.Length);  // (*)
    else strColumnNames = strColumnNames + "|" + 
                          col.ColumnName.PadLeft(col.MaxLength - col.ColumnName.Length);  // (*)
}
output.Add($"[{strColumnNames}]");


foreach (DataRow dataRow in dataTable.Rows)
{
    string temp = "";
    for (int i = 0; i < dataRow.ItemArray.Count(); i++)
    {
        if (i == 0)
            temp = dataRow.ItemArray[i].ToString();                          // (**)
        else temp += "|" + dataRow.ItemArray[i].ToString();                  // (**)
    }
    output.Add($"[{temp}]");
}

此代码中的 (*) 部分使用 DataColumn 最大长度的 MaxLength 属性 以获得 column-like 输出。

我想在(**)部分做同样的事情,但我不知道如何访问相应的DataColumn,从dataRow开始 object.

有人知道吗?
提前致谢

您已经有可用的 dataTable 实例。 dataTable.Columns[i] 应该给你合适的 DataColumn.

Datatable 这里已经实例化了。如果你想打印数据列,你应该使用 dataTable.Column[i] 作为适当的列。