C#If / else语句不起作用

时间:2011-06-20 20:42:13

标签: c# sql

我有一个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。其他一切都是空的。

3 个答案:

答案 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语句。