2016-02-29 43 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

相關問題