null -条件,不适用于数据库记录



我试图测试出新的空条件运算符在。net 4.6(使用VB.Net),但它不是为我工作时,从数据库记录的字段检索空值,我不明白为什么。下面是我的代码:

Dim dbtable As New DataSet1.MyDataTable
Dim dbrecord As DataSet1.MyRecord
dbrecord = dbtable.NewMyDataTableRow
Dim val = dbrecord.CustomerName?.ToString

但是,它仍然会抛出System.Data.StrongTypingException。

我做错了什么?

看起来CustomerName的值是DBNull,而不是null。请参阅StrongTypingException的文档:

当用户访问 DBNull 值时,由强类型DataSet抛出的异常。

空条件运算符不能帮助您处理DBNull值。

我认为你别无选择,只能手动检查dbrecord.IsCustomerNameNull(你应该有一个类似的属性命名)之前,试图读取CustomerName

我找到了一个不像总是检查IsCustomerNameNull那样麻烦的解决方法。用这个代替:

Dim val = dbrecord("CustomerName")?.ToString

最新更新