如何使用MySQL DataReader在vc#中处理空指针异常?

时间:2016-04-26 20:57:28

标签: c# mysql visual-studio

当我运行此代码时:

count = mdr.GetInt32("total");

mdr是MySQL DataReader的对象

要从我的表中获取total字段的值,如果它返回NULL,则应用程序将以空指针异常停止。

有没有办法捕获此异常?

2 个答案:

答案 0 :(得分:0)

因为显然“无效”。是字段的有效(或半有效)值" count,"您可以考虑将计数从int更改为可空int?

或者你可以使用try {} catch {}块来围绕调用,如下所示:

try
{
  count = mdr.GetInt32("total");
}
catch(Exception ex)
{
  //Any logic you would like to run if "total" is null.
}

答案 1 :(得分:0)

是的,你可以使用try .. catch阻止来捕获异常(请参阅Nex Terren回答)。

另一种方法是使用条件检查作为问题评论中提到的Jon Skeet

if (!mdr.IsDBNull("total")) { ... }

最后,您可以使用?: operator

count = mdr.IsDbNull("total") == null ? 0 : mdr.GetInt32("total");