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

我有一个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属性.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...