捕获 NULL 值的正确语法

Correct syntax for trapping NULL values

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

代码不喜欢 "else if" 行;括号内的所有内容都用红色下划线标出。当我将鼠标悬停在它上面时,弹出消息是:

The left-hand side of an assignment must be a variable, property or indexer

谁能告诉我如何解决这个问题?我正在尝试考虑数据集中的 NULL 值。

您缺少一个“=”字符。在 C# 中,比较是用双等号“==”完成的。一个意味着赋值,因此你的错误是你不能在 if 语句中赋值。

尝试:

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

正如其他人所建议的,这里还有其他事项需要考虑。

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

string.IsNullOrEmpty(yourString)

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

string.IsNullOrWhitespace(yourString)

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

DT["field"] == DbNull.Value

DT.IsNull("field")

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

您可以检查 null 是否为空:

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