是否有某种方法而不是尝试和错误来指定哪个字段产生问题以及正确的字段类型是什么?
我得到以下异常:
指定的演员表无效。
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
SQL查询的结果
答案 0 :(得分:3)
没有直接的方法来检测哪个字段会出现问题。
回答第二个问题,如何找出正确的字段类型:
Type fieldType = dtGivenBal.Columns["startBal"].DataType;
因此,您可以使用DataTable.Columns
集合来确定每列的类型(例如,通过调试器)。通过这种方式,您还可以找到错误的类型。