如何为DBNull不相等的DBNull
题
我有以下代码行
if (DBNull.Value.Equals(o) || o != null)
其中o
是object o in row.ItemArray
一直收到的误差 - >
Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".
我不明白的是,当我通过我的代码,这一步应该if
相扶这和我的表演交替动作,但它不?
有人可以提供一些线索给我。
谢谢!
解决方案
尝试使用
其他提示
我觉得你的问题是,实际上
DBNull.Value == null
//is always false
在为DBNull是一类特殊的价值观比较从数据库返回的,所以你actualy需要检查空条件和DBNull.value如果您的数组包含两个。
编辑:不好意思看你的代码更接近你可能只需要扭转你或操作。如果o == NULL您的第一条语句将炸毁你的例外。尝试:
if (o != null || o == DBNull.Value)
可以是这样的比较有助于
if ( !o.GetType().Equals( DBNull.Value ) )
或
if (o is DBNull)
不隶属于 StackOverflow