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属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |