用于捕获NULL值的正确语法

时间:2016-04-29 14:30:09

标签: c# code-behind

我的C#代码隐藏看起来像这样:

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

代码不喜欢"否则如果"线; parens里面的所有东西都用红色加下划线。当我将鼠标悬停在它上面时,弹出消息是:

  

作业的左侧必须是变量,属性或   索引

有人能告诉我如何解决这个问题吗?我试图在我的数据集中考虑NULL值。

2 个答案:

答案 0 :(得分:4)

正如Juan指出的那样,您需要==,但请注意NULL""是不同的事情。

您可以通过以下方式检查null 为空:

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

答案 1 :(得分:3)

您缺少'='字符。在C#中,使用双等号“==”进行比较。单个意味着赋值,因此您无法在if语句中分配错误。

尝试:

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

正如其他人所说,此处还有其他事项需要考虑。

要将字符串检查为null或为空,可以使用以下命令:

string.IsNullOrEmpty(yourString)

或者,如果您将空格字符串视为空

string.IsNullOrWhitespace(yourString)

如果DT是您从数据库中获取的数据表,则数据库中的空值不为空或空字符串而是DbNull,因此您应该这样比较:

DT["field"] == DbNull.Value

或者

DT.IsNull("field")