Como pode ser igual a Dbnull
Pergunta
Eu tenho a seguinte linha de código
if (DBNull.Value.Equals(o) || o != null)
Onde o
é object o in row.ItemArray
Eu continuo recebendo um erro de ->
Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".
O que não entendo é que quando eu passo pelo meu código if
Deveria estar pegando isso e executando minha ação alternativa, mas não?
Alguém pode lançar alguma luz para mim.
Obrigada!
Solução
Tente usar
Convert.isdbnull método.
Outras dicas
Eu acho que seu problema é que de fato
DBNull.Value == null
//is always false
O dbnull é uma classe especial para comparações sobre valores retornados do banco de dados, para que você precise verificar se há uma condição nula e um dbnull.value se sua matriz contiver os dois.
EDITAR: Desculpe, olhando mais de perto o seu código, você pode precisar apenas reverter sua operação ou. Se o == NULL, sua primeira declaração explodirá com sua exceção. Tentar:
if (o != null || o == DBNull.Value)
pode ser essa comparação ajuda
if ( !o.GetType().Equals( DBNull.Value ) )
ou
if (o is DBNull)