2016-04-29 63 views
0

我的C#代碼隱藏看起來是這樣的:誘捕NULL正確的語法值

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());} 

代碼不喜歡「否則,如果」行;包裹內的所有內容都以紅色標出。當我將鼠標懸停我的鼠標懸停在上面,在彈出的消息是:

賦值的左邊必須是一個變量,屬性或 索引

誰能告訴我如何解決這一問題?我試圖解釋我的數據集中的NULL值。

+1

你從VB.NET來? ;-) –

+0

順便說一下,既然'DT'既然是DataRow,而且數據庫/數據表中的值似乎是NULL,你應該使用'else if(DT.IsNull(「BENEFIT_TYPE1」))... ' –

+0

正如@TimSchmelter所說,如果它來自數據庫你應該這樣做或與DbNull.Value比較 – Juan

回答

4

胡安指出的那樣,你需要==,但是請注意,NULL""是不同的東西。

您可以檢查null空用:

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

您缺少'='字符。在C#中,比較使用雙等號'=='來完成。一個意味着分配,因此你的錯誤,因爲你不能在一個if語句中分配。

嘗試:

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

至於其他建議還有其他事情要考慮到這裏。

對於檢查字符串爲空或空,你可以使用以下命令:

string.IsNullOrEmpty(yourString) 

或者,如果你把空白的字符串作爲空

string.IsNullOrWhitespace(yourString) 

如果DT是,你是採購的DataTable從數據庫中的數據庫中的空值不爲空或空字符串,但DbNull,所以你應該這樣比較:

DT["field"] == DbNull.Value 

或者

DT.IsNull("field")