2016-04-29 12 views
0

Mein C# -Code-behind wie folgt aussieht:korrekte Syntax für NULL Trapping Werte

if ((DT["BENEFIT_TYPE1"].Equals(0))) 
    { DropDownList_Tracking_BenefitType1.SelectedValue = null; } 
else if ((DT["BENEFIT_TYPE1"].ToString() = "")) 
    { DropDownList_Tracking_BenefitType1.SelectedValue = null; } 
else 
    {DropDownList_Tracking_BenefitType1.SelectedValue = (DT["BENEFIT_TYPE1"].ToString());} 

Der Code nicht die "else if" Linie mag; alles innerhalb des Parens ist rot unterstrichen. Als ich darüber meine Maus bewegen, ist die Popup-Meldung:

Die linke Seite einer Zuweisung muss eine Variable, das Eigentum oder Indexer sein

Kann mir jemand sagen, wie dieses Problem zu beheben ? Ich versuche NULL-Werte in meinem Dataset zu berücksichtigen.

+1

sind Sie von VB.NET kommt? ;-) –

+0

Btw, da 'DT' da eine' DataRow' sein soll und der Wert in der Datenbank/Datentabelle 'NULL' zu sein scheint sollte man' else if (DT.IsNull ("BENEFIT_TYPE1")) ... ' –

+0

Wie @TimSchmelter sagte, wenn es von db kommt, sollten Sie das tun oder mit DbNull.Value vergleichen – Juan

Antwort

4

Als Juan wies darauf hin, müssen Sie ==, aber beachten Sie, dass NULL und "" verschiedene Dinge sind.

können Sie prüfen, für nulloder leer mit:

else if (string.IsNullOrEmpty(DT["BENEFIT_TYPE1"].ToString())) 
3

Ihnen fehlt ein '=' Zeichen. In C# werden Vergleiche mit doppeltem Gleichheitszeichen '==' durchgeführt. Eine einzelne bedeutet Zuweisung, daher Ihr Fehler, wie Sie in einer if-Anweisung nicht zuordnen können.

Versuchen:

(DT["BENEFIT_TYPE1"].ToString() == "")) 

Wie andere haben vorgeschlagen, es andere Dinge sind hier zu berücksichtigen.

Für Strings Überprüfung Sie sein null oder leer kann die folgende verwenden:

string.IsNullOrEmpty(yourString) 

Oder wenn Sie leeren Raum Zeichenfolge als leer

string.IsNullOrWhitespace(yourString) 

behandeln Wenn DT eine Datentabelle, die Sie Sourcing sind aus der Datenbank sind die Nullen in der Datenbank keine Null oder eine leere Zeichenkette, sondern DbNull, also sollten Sie diesen Weg vergleichen:

DT["field"] == DbNull.Value 

Oder

DT.IsNull("field") 
Verwandte Themen