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!

Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top