Frage

Ich habe die folgende Codezeile

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

wo o ist object o in row.ItemArray ich einen Fehler von erhalte ->

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

Was ich nicht verstehe, ist, dass, wenn ich meinen Code für Schritt durch diesen if dies zu kontrollieren sein sollte und Durchführung meine alternative Aktion aber es funktioniert nicht?

Kann jemand bitte etwas Licht für mich vergossen.

Danke!

War es hilfreich?

Lösung

Versuchen Sie es mit

Convert.IsDBNull Methode.

Andere Tipps

Ich glaube, Sie Problem ist, dass in der Tat

DBNull.Value == null 
//is always false

Die DBNull ist ein Sonderklasse für Vergleiche auf Werte aus der dB zurück, so dass Sie actualy für einen Null-Zustand müssen überprüfen und eine DBNull.Value, wenn Ihr Array beide enthält.

EDIT: Es tut uns Leid näherem Hinsehen an Ihrem Code können Sie nur benötigen eine ODER-Operation rückgängig zu machen. Wenn o == null Ihre erste Anweisung wird mit Ihrer Ausnahme sprengen. Versuchen Sie:

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

kann ein solcher Vergleich sein hilft

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

oder

if (o is DBNull)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top