C# 仅转置数据表中的一列

C# 仅转置数据表中的一列,c#,.net,asp.net-mvc-4,C#,.net,Asp.net Mvc 4,我有一个数据表,如下所示: 我想将上表转置如下: 我可以使用以下代码获取标题值: DataTable outputTable = new DataTable(); outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString()); int rCount = 0; foreach (DataRow inRow in inputTable.Rows) {

我有一个数据表,如下所示:

我想将上表转置如下:

我可以使用以下代码获取标题值:

 DataTable outputTable = new DataTable();
        outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());
        int rCount = 0;
        foreach (DataRow inRow in inputTable.Rows)
        {

            string DescColName = inRow[1].ToString();
            string maxColName = "MaxValue";
            string valColName = "Status";
            outputTable.Columns.Add(DescColName);
            outputTable.Columns.Add(maxColName);
            outputTable.Columns.Add(valColName);
        }
我正在尝试下面的代码来填充失败的行

for (int rCount = 0; rCount <= inputTable.Columns.Count - 1; rCount++)
        {
            DataRow newRow = outputTable.NewRow();

            for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
            {
                string colValue = inputTable.Rows[cCount][rCount].ToString();
                newRow[cCount] = colValue;
            }
            outputTable.Rows.Add(newRow);

        }

for(int rCount=0;rCount我想我理解它失败的原因

for (int rCount = 0; rCount <= inputTable.Columns.Count - 1; rCount++)
        {
            DataRow newRow = outputTable.NewRow();

            for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
            {
                string colValue = inputTable.Rows[cCount][rCount].ToString();
                newRow[cCount] = colValue;
            }
            outputTable.Rows.Add(newRow);

        }
在第二个代码块中,如果跟踪这些行上的
rCount
cCount

string colValue = inputTable.Rows[cCount][rCount].ToString();
newRow[cCount] = colValue;
生成的数据表是什么样子的

02/18/2014 | 02/18/2014 | 02/18/2014 | 02/19/2014 | 02/19/2014 | 02/19/2014 | ... //and on and on
Tire Alignment | Oil Change | Air Filter| Tire Alignment | Oil Change | Air Filter| ... //and on and on

因此,如果可输入的行数多于可输出的列数,那么在某个时候,
cCount
将超过
newRow
中的可用列数。我怀疑这就是导致错误的原因。不幸的是,为了说明多行具有相同的报告日期,我“恐怕您必须重新编写整个解决方案。

您收到的错误消息是什么?请按原样发布。是的,我理解问题,但我们不能解决并实现此解决方案吗?我很乐意帮助您,但除非您愿意付钱,否则我不会为您编写任何代码:)。你的问题是关于它失败的原因。如果您同意我关于失败原因的回答是正确的,请将其标记为解决方案。(毕竟,我必须分析你的代码。)如果你想用更新的尝试编辑你的帖子,我很乐意继续提供见解。只是为你指出我将要走的方向,首先,我将切换
rCount
cCount
变量,并在内部循环中添加一条if语句,以检查报告日期是否已从
newRow
中的报告日期更改。在进入循环之前,按ReportDate对datatable进行排序也是明智的。