【发布时间】:2018-02-08 05:12:02
【问题描述】:
我必须对DataTable 中特定列的整数值求和。
我做了什么:
DataTable dt = GetFilledDataTable();
foreach( var x in dt.AsEnumerable() )
{
z+=(int)x["ColumnName"];
}
我得到错误:
指定的演员表无效
我完全确定,x["ColumnName"] 中的值是 1445
解决方案
正如@stuartd 在他的评论中建议的那样,我使用了int.Parse(x["columnName"].ToString())
【问题讨论】:
-
但是你完全确定 '1445' 是一个 int 吗?
-
你试过 int.parse(x["ColumnName"]) 吗?
-
int.Parse(x["columnName"].ToString())甚至 -
@Jaroslaw BTW,因为您使用的是 Linq to DataSet,所以您不使用
x.Field<int>("ColumnName")? -
@auburg erm,
ToString()在int.Parse(…)内 -int.Parse将字符串作为参数,而 DataRow 上的索引器 returns an object)。所以OP需要在x["ColumnName"]返回的对象上调用ToString()才能使用int.Parse
标签: c# .net datatable runtime-error