我有以下代码行

if (DBNull.Value.Equals(o) || o != null)

其中oobject o in row.ItemArray一直收到的误差 - >

Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".

我不明白的是,当我通过我的代码,这一步应该if相扶这和我的表演交替动作,但它不?

有人可以提供一些线索给我。

谢谢!

有帮助吗?

解决方案

尝试使用

Convert.IsDBNull 方法

其他提示

我觉得你的问题是,实际上

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)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top