C / If / else оператор не работает - PullRequest
0 голосов
/ 21 июня 2011

У меня есть оператор if / else, который не работает.

while (rdr.Read())
{
  string permission = rdr["Permission"].ToString();
  if (permission == "Exec")
  {
     Run my code
  }
  else
  {
     lblErrorStart.Visible = true;
  }
}

Если Permission соответствует Exec, то все работает нормально, но (при пошаговом выполнении кода) я заметил, что когда Permission не равен Exec, он не вызывает остальное Он просто возвращается к оператору while и останавливается. Дайте мне знать, если мне нужно предоставить больше кода.

Примечание: у меня есть только Exec в базе данных. Все остальное - ноль.

Ответы [ 2 ]

4 голосов
/ 21 июня 2011

Я заметил, что когда Permission не равен Exec, он не вызывает остальное.

Мне очень трудно поверить в это.Пожалуйста, покажите нам точное содержание permission, когда оно не равно "Exec".

Также следует понимать, что установка метки в видимый не будет обновляться, как только этот код будет выполнен.Это потому, что вы не разрешаете Windows Message Loop обрабатывать сообщения.Таким образом, даже если для свойства Visible установлено значение true, сообщение WM_PAINT никогда не обрабатывается (пока не завершится цикл), поэтому внешний вид элемента управления не изменится.

РЕДАКТИРОВАТЬ:

Как отметил в комментарии Брайан Гидеон, ваша исполняемая версия может быть не синхронизирована с вашим кодом.Перестройте весь проект и попробуйте снова.

1 голос
/ 21 июня 2011

Иногда при проверке точного равенства вы терпите неудачу на основании того, что НЕ видите ... Если ваши данные взяты из набора записей или другой структуры, а фактическое значение НЕ обрезано (), произойдет сбой ...

«Exec» == «Exec» завершится ошибкой

Попробуйте

строковое разрешение = rdr ["Разрешение"]. ToString (). Trim ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...