DataTable c#“指定的强制转换无效”错误

时间:2017-08-30 13:03:08

标签: c# .net datatable runtime-error

我必须将DataTable中特定列的整数值相加。

我做了什么:

DataTable dt = GetFilledDataTable();
foreach( var x in dt.AsEnumerable() )
{
   z+=(int)x["ColumnName"];
}

我收到了错误:

  

指定的演员表无效

我完全相信,x["ColumnName"]中的值为1445

正如@stuartd在他的评论中所说,我使用了int.Parse(x["columnName"].ToString())

2 个答案:

答案 0 :(得分:2)

您可以遍历行,然后使用通用Field方法:

<a href="file:///C:/demoAttachments/demo.pdf" target="_blank">demo.pdf</a>

答案 1 :(得分:0)

只需使用Convert.ToInt32代替cast:

DataTable dt = GetFilledDataTable();
foreach( var x in dt.AsEnumerable() )
{
   z+=Convert.ToInt32(x["ColumnName"]);
}

如果您的值真的为int,则会快速运行,如果是uint则执行必要的转换,如果string则进行解析。