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

c# – 为什么我不能用’??’ System.DBNull值的操作数?

发布时间:2020-12-15 20:49:54 所属栏目:百科 来源:网络整理
导读:我有一个Oracle数据表获取为null的列.所以我想保持代码很好,很简单,我会使用??操作数. AlternatePhoneNumber是我的C#模型中的字符串. AlternatePhoneNumber = customer.AlternatePhoneNumber ?? "" 但是,即使使用该代码,我仍然会收到错误. System.InvalidCas
我有一个Oracle数据表获取为null的列.所以我想保持代码很好,很简单,我会使用??操作数. AlternatePhoneNumber是我的C#模型中的字符串.

AlternatePhoneNumber = customer.AlternatePhoneNumber ?? ""

但是,即使使用该代码,我仍然会收到错误.

System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'.

我知道错误意味着什么,但为什么?在DBNull上不可用?是不是null和DBNull基本相同?

谢谢.

解决方法

?? ??运算符仅适用于实际的空值.

null和DBNull.Value不一样; DBNull.Value只是一个占位符对象.

此外,该异常来自AlternatePhoneNumber属性,在你的??运算符执行. (您的代码没有演员表).

如果customer是类型化数据集中的一行,请在设计器中更改列的NullValue属性.

(编辑:李大同)

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

    推荐文章
      热点阅读