2016-02-29 42 views
0

我正在计算数据表中每列中相同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 



    } 
+0

@hat是列的数据类型你”重新尝试总结?只是基于名称我_guessing_它是一个'DateTime',并且你不能对DateTime进行求和。 – CodingGorilla

+0

它不是数据时间。列名称是日期和时间。我正在尝试按列名计算每列。 – Daniel

回答

0

如果“colPnow”不是一个数字,这可以解释的那样:“计算”和“点心”似乎都在期待数值

+0

编号colpnow仅用于查找列名称。 colpnow匹配列 – Daniel

相关问题