指定的强制转换无效。(数据表中的整数值)

时间:2013-02-18 09:33:50

标签: c# asp.net casting datatable null

我想检查数据表中的以下字段是否为null:

r.Field<int>("prod_type")

if (r.Field<int>("prod_type") != null && 
    !string.IsNullOrEmpty(r.Field<int>("prod_type").ToString()))

但我得到以下例外:

  

指定的演员表无效。

如何检查数据表中的整数值是否为null或为空?

3 个答案:

答案 0 :(得分:4)

Field扩展方法支持可空类型。使用HasValue检查可空是否为空:

if (r.Field<int?>("prod_type").HasValue)

答案 1 :(得分:2)

您收到的错误表明数据表中的字段不是int 类型的字段。如果类型为int,则无法保留空值,您可以尝试int? Nullable

r.Field<int?>("prod_type") != null

答案 2 :(得分:1)

如果prod_type确实是数据库中的int字段,请尝试这样做:

if (r.Field<int?>("prod_type") != null)