加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

.net – 检查DBNull会引发StrongTypingException

发布时间:2020-12-17 00:28:47 所属栏目:大数据 来源:网络整理
导读:我正在使用数据集从数据库中提取数据.一行中的一个字段为NULL.我知道这个.但是,以下vb.net代码会引发StrongTypingException(在数据集设计器中的自动生成的get_SomeField()方法中): If Not IsDBNull(aRow.SomeField) Then'do somethingEnd If 根据文件和this
我正在使用数据集从数据库中提取数据.一行中的一个字段为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> (在上面的例子中).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读