.net – 检查DBNull会引发StrongTypingException

前端之家收集整理的这篇文章主要介绍了.net – 检查DBNull会引发StrongTypingException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用数据集从数据库提取数据.一行中的一个字段为NULL.我知道这个.但是,以下vb.net代码会引发StrongTypingException(在数据集设计器中的自动生成的get_SomeField()方法中):
If Not IsDBNull(aRow.SomeField) Then
'do something
End If

根据文件this question应该是罚款.

编辑:如果aRow.SomeField是DBNull.Value然后也返回相同的错误.哎呀.

不同的是,在相关的问题中,它是通过索引器来谈论一个无类型的值(即对象).当您通过.SomeField时,该类型已经包含在内 – 所以这可以是int等.在int上尝试IsDBNull是没有意义的,因为int永远不会是DBNull.

实质上,SomeField是一个包装(为了C#的口音…)

public int SomeField {
    get { return (int) this["someFieldName"]; }
    set { this["someFieldName"] = value; }
}

我不是一个巨大的DataTable人,但您可以尝试通过name / index / column进行检查;或将列标记为可空,以使其为Nullable< int> (在上面的例子中).

原文链接:https://www.f2er.com/vb/255147.html

猜你在找的VB相关文章