我有一个if / else语句无效。
while (rdr.Read())
{
string permission = rdr["Permission"].ToString();
if (permission == "Exec")
{
Run my code
}
else
{
lblErrorStart.Visible = true;
}
}
如果Permission确实等于Exec,那么一切正常但是(当单步执行代码时)我注意到当Permission不等于Exec时,它不会触发Else。它只是回到while语句并停止。如果我需要提供更多代码,请告诉我。
注意:我在数据库中只有Exec。其他一切都是空的。
答案 0 :(得分:4)
我注意到当Permission不等于Exec时,它不会触发Else。
我很难相信这一点。如果permission
不等于"Exec"
,请告诉我们Visible
的确切内容。
还要意识到,只要执行该代码,将标签设置为可见就不会更新。这是因为您不允许Windows Message Loop处理邮件。因此,即使WM_PAINT
属性设置为true,也永远不会处理{{1}}消息(直到您的循环退出),因此控件的外观不会改变。
编辑:
正如Brian Gideon在评论中指出的那样,您的可执行版本可能与您的代码不同步。重建整个项目并再试一次。
答案 1 :(得分:1)
有时在测试完全相等时,你会根据你看不到的东西而失败......如果你的数据来自一个记录集或其他结构而且实际值没有被修剪(),它将会失败... < / p>
“Exec”==“Exec”将失败
尝试
string permission = rdr [“Permission”]。ToString()。Trim();
答案 2 :(得分:0)
基本上,这是一条if
else
语句,如下所示:
if(label1.Text == "True")
{
label1.Forecolor = Color.Green;
}
else
{
label1.Text = "ERROR!";
label1.Forecolor = Color.Red;
}
此外,您可以执行多个if
语句,如果它们都不是相对true
,则可以让它们全部引向else
语句。