C# 获取了“的错误消息”;指定的强制转换无效";
我试图计算数据表中每列中相同ID的总和。数据表中有空元素。当我对计算colP_sum的行运行以下代码时,如果“specific cast无效”,它会给出错误。它似乎是由数据表中的空元素引起的?我该如何解决它?我确信如果datatable中充满了数字,那么这个代码就可以工作了C# 获取了“的错误消息”;指定的强制转换无效";,c#,datatable,C#,Datatable,我试图计算数据表中每列中相同ID的总和。数据表中有空元素。当我对计算colP_sum的行运行以下代码时,如果“specific cast无效”,它会给出错误。它似乎是由数据表中的空元素引起的?我该如何解决它?我确信如果datatable中充满了数字,那么这个代码就可以工作了 for (int i = 0; i < LoadIDcount; i++) { string IDnow = LoadID[i, 0];
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
}
for(int i=0;i
如果“colPnow”不是一个数字,这可以解释它:“Compute”和“Sum”似乎都需要数字值@您试图求和的列的数据类型是什么?仅根据名称,我猜它是一个DateTime
,不能求和DateTime
s。它不是datatime。列名是日期和时间。我正在尝试按列名计算每一列。否。colpnow仅用于定位列名。colpnow与列匹配