c# – 如何可靠地检查可空属性是否包含数据? DBNull正在杀了我
发布时间:2020-12-16 01:43:00 所属栏目:百科 来源:网络整理
导读:我已经开始使用Rob Conery的Massive了.令人敬畏的
我已经开始使用Rob Conery的Massive了.令人敬畏的小“ORM”,非常高效.但是,我在可空字段上遇到System.DBNull比较问题.
例如,我想检查属性是否与另一个属性匹配(在此示例中为long类型) if (obj.MemberId == otherObj.MemberId) return true; 抛出异常:运算符’==’不能应用于’System.DBNull’和’long’类型的操作数.在这种情况下,obj.MemberId为null(更具体地说,DBNull). 好的,所以我先检查一下它的DBNull.Value是否正确?像这样: if (obj.MemberId != DBNull.Value) return obj.MemberId == otherObj.MemberId; 酷,这是有效的,至少在obj.MemberId是DBNull时,但是当它不是(包含一个long)时,另一个例外:运算符’!=’不能应用于’long’和’System.DBNull’类型的操作数. DBNull正在杀了我.如何可靠地检查可空属性是否不包含数据? 解决方法
您是否尝试使用is运算符?
if (obj.MemberId is DBNull) { // it is null return false; } else { // has some value return obj.MemberId == otherObj.MemberId; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |