【问题标题】:Got an error message for "Specified cast is not valid"收到“指定的演员表无效”的错误消息
【发布时间】:2016-03-01 04:10:50
【问题描述】:

我正在尝试计算数据表中每一列中相同 ID 的总和。在数据表中有空元素。当我将以下代码运行到计算 colP_sum 的行时,如果“特定转换无效”,它会给我错误。这似乎是由数据表中的空元素引起的?我该如何解决?我确定数据表是否充满了此代码有效的数字。

            for (int i = 0; i < LoadIDcount; i++)
        {
            string IDnow = LoadID[i, 0];
            string IDsaved = LoadP_dt.Rows[i][0].ToString();

            if (LoadP_dt.Rows[i][0].ToString() == IDnow)
            {
                for (int j = 0; j < 8760; j++)
                {
                    string colPnow = SP_dt.Columns[j * 2 + 4].ColumnName.ToString();
                    double ColP_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colPnow), String.Format("Load_ID = '{0}'", IDnow));
                    string colQnow = SP_dt.Columns[j * 2 + 5].ColumnName.ToString();
                    double ColQ_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colQnow), String.Format("Load_ID = '{0}'", IDnow));


                    LoadP_dt.Rows[i][j + 2] = ColP_sum;
                    LoadQ_dt.Rows[i][j + 2] = ColQ_sum;
                    Console.WriteLine("{0}    {1}", i, j);
                }
            }
            else
            {
                Console.WriteLine("ID does not match");
            }

        }

        CSVfilewriter(CSVPpath, LoadP_dt);//save the Load_P datatable to CSV file
        CSVfilewriter(CSVQpath, LoadQ_dt);//save the Load_Q datatable to CSV file
        //CSVfilewriter(CSVSPpath, SP_dt);//save the service point datatable to CSV file



    }

【问题讨论】:

  • @hat 是您要求和的列的数据类型?只是根据我的名字猜测它是DateTime,你不能总结DateTimes。
  • 不是数据时间。列名是日期和时间。我正在尝试按列名计算每一列。

标签: c# datatable


【解决方案1】:

如果“colPnow”不是一个数字,这可以解释:“Compute”和“Sum”似乎都在期待数字值

【讨论】:

  • 没有。 colpnow 仅用于定位列名。 colpnow 匹配列
猜你喜欢
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多