0

我正在尝试在 .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。

我究竟做错了什么?

4

2 回答 2

1

看起来CustomerName的价值是DBNull,不是null。查看关于StrongTypingException的文档是怎么说的:

DataSet用户访问DBNull值时强类型引发的异常。

空条件运算符无法为您提供DBNull值。

我认为您别无选择,只能dbrecord.IsCustomerNameNull在尝试读取CustomerName.

于 2015-09-04T15:58:42.667 回答
0

我想出了一个解决方法,它不像总是检查那样麻烦IsCustomerNameNull。改用这个:

Dim val = dbrecord("CustomerName")?.ToString
于 2015-09-04T16:34:41.697 回答