Domanda

Ho la seguente riga di codice

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

Dove o È object o in row.ItemArray Continuo a ricevere l'errore -->

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

Quello che non capisco è che quando passo attraverso il mio codice this if dovrei rilevarlo ed eseguire la mia azione alternativa, ma non lo fa?

Qualcuno può darmi un po' di luce?

Grazie!

È stato utile?

Soluzione

Prova a usare

Convert.IsDBNull metodo.

Altri suggerimenti

Credo problema è che in realtà

DBNull.Value == null 
//is always false

Il DBNull è una classe speciale per il confronto sui valori restituiti dalla dB in modo da actualy necessario controllare per una condizione NULL e un DBNull.Value se la matrice contiene sia.

Modifica Spiacenti guardando più da vicino il codice si può solo bisogno di invertire la vostra OR. Se o == null tua prima dichiarazione sarà saltare in aria con il tuo eccezione. Prova:

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

potrebbe essere utile questo confronto

if ( !o.GetType().Equals( DBNull.Value ) )

O

if (o is DBNull)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top