在数据表返回一列列表中,在这种情况下表返回空值,我要处理空值
DataTable PreviousQuarter = GroupFive.Tables["PreviousQuarter_108_49_100_51"];
LastQuarter.Merge(PreviousQuarter);
var AHCT = (from ah in PreviousQuarter.AsEnumerable()
where ah.Field<int>("ParameterID") == 10
|| ah.Field<int>("ParameterID") == 11
|| ah.Field<int>("ParameterID") == 12
|| ah.Field<int>("ParameterID") == 13
select ah.Field<int>("Tot_Tkts_Closed")).ToList();
if (AHCT == null)
{
Response = "";
}
它将为空,我得到错误指定的转换无效。 如何处理此错误。
答案 0 :(得分:1)
您正在选择表中不可用的值,并且在输入结果之前,将其强制转换为int。 这就是为什么它会引发错误。 最好先选择然后将其转换为int。
答案 1 :(得分:0)
我认为@madreflection在评论中给了您答案。
由于出现此错误:
指定的演员表无效
我的猜测是您在Tot_Tkts_Closed
列中有一个空值。在这种情况下,将其强制转换为可为null的int int?
。更新此行:
select ah.Field<int?>("Tot_Tkts_Closed")
另一种可能性是ParameterID
为null,在这种情况下,应该通过类似的更改来解决它:ah.Field<int?>("ParameterID")
。
与其检查列表是否为空,还可以检查列表是否为空。在这种情况下,请使用Count
属性:
if (AHCT.Count == 0)
{
Response = "";
}