【发布时间】:2021-12-21 07:27:40
【问题描述】:
我正在尝试打印 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}]");
}
该代码中的(*) 部分使用DataColumns 最大长度的MaxLength 属性来获得类似列的输出。
我想在(**)部分做同样的事情,但是我不知道如何访问对应的DataColumn,从dataRow对象开始。
有人有想法吗?
提前致谢
【问题讨论】:
-
使用dataTable不需要从dataRow开始...
dataTable.Columns[i].MaxLength -
output是什么?你不会在输出之前将DataTable转换为CSV字符串来简化这个过程吗?
标签: c# datatable datarow datacolumn