是否有某种方法而不是尝试和错误来指定哪个字段造成问题,以及正确的字段类型是什么?
我得到以下例外:
指定的强制转换无效。
var vacStatiscs = from x in dtGivenBal.AsEnumerable()
join y in dtTakenBal.AsEnumerable()
on x["emp_num"].ToString() equals y["emp_num"].ToString()
into joined
from j in joined.DefaultIfEmpty()
select new
{
emp_num = x.Field<int>("emp_num"),
name = x.Field<string>("name"),
startBal = x.Field<int>("startBal"),
prevMon = x.Field<int>("PrevMon"),
added = x.Field<int>("Added"),
taken = (j == null) ? 0 : j.Field<Int32>("sum")
};现在,如果我删除了startBal ,prevMon ,added,我就没有任何例外。
注释:前面的字段是COUNT和SUM查询的结果
发布于 2015-09-17 10:12:24
没有直接的方法来检测是哪个字段造成了问题。
要回答第二个问题,如何找到正确的字段类型:
Type fieldType = dtGivenBal.Columns["startBal"].DataType;因此,您可以使用DataTable.Columns集合来确定每一列的类型(F.E。通过调试器)。在这种情况下,您也会发现错误的类型。
https://stackoverflow.com/questions/32627704
复制相似问题