如何在C#中打印整个表格

4
我想要打印出一个DataTable的内容,先是列标题,然后再是表格元组的内容。
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}]");
}

这段代码中的(*)部分使用DataColumnMaxLength属性来获取类似于列的输出。

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

有人有想法吗?
提前致谢。


如果使用 dataTable,就不需要从 dataRow 开始... dataTable.Columns[i].MaxLength - Stephan Bauer
output是什么?在输出之前,将DataTable转换为CSV字符串是否可以简化该过程? - Steve B
2个回答

4

您已经拥有了dataTable实例。 dataTable.Columns[i]应该为您提供适当的DataColumn


1

Datatable已经在此实例化。如果您想打印数据列,应使用dataTable.Column[i]来获取适当的列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接