我想要打印出一个
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}]");
}
这段代码中的(*)
部分使用DataColumn
的MaxLength
属性来获取类似于列的输出。
我想在(**)
部分做同样的事情,但我不知道如何从dataRow
对象开始访问相应的DataColumn
。
有人有想法吗?
提前致谢。
dataTable.Columns[i].MaxLength
- Stephan Baueroutput
是什么?在输出之前,将DataTable转换为CSV字符串是否可以简化该过程? - Steve B