ЕСЛИ не принимает никакого решения? - PullRequest
0 голосов
/ 16 сентября 2010

Посмотрите на это:

foreach(Object Item in comboBox1.Items)
{
    if (Convert.ToString(Item) == Convert.ToString(dsGirasol.Tables["DatosGirasol"].Rows[contador][0]))
    {
        repetido = true;
        break;
    }
    else
    {
        repetido = false;
    }
}​

Обратите внимание, что оба возможных выхода имеют окно сообщения.Однако, когда я запускаю это, ничего не появляется вообще, и остальная часть кода продолжает выполняться ...

РЕДАКТИРОВАТЬ: Добавлен окружающий цикл!

Ответы [ 3 ]

2 голосов
/ 16 сентября 2010

Зачем вам нужен break? Попробуйте это:

if (Convert.ToString(Item) == Convert.ToString(dsMaiz.Tables["DatosMaiz"].Rows[contador][0]))
{
    repetido = true;
    MessageBox.Show("Encontre uno igual");
}
else
{
    repetido = false;
    MessageBox.Show("Encontre uno diferente");
}
1 голос
/ 16 сентября 2010

Попробуйте оценить левую и правую части условия, прежде чем оценивать равенство.Я могу только представить, что это должно быть исключение, которое молча ловится.Это поможет вам отладить проблему.

Например:

var left = Convert.ToString(Item);
var right = Convert.ToString(dsMaiz.Tables["DatosMaiz"].Rows[contador][0]);
if (left == right)
{
    ...
}
else
{
  ...
}

РЕДАКТИРОВАТЬ: Теперь, когда я вижу, что вы используете цикл, вернитесь к основам, цикл даже работает?Низкотехнологичная отладка, убедитесь, что в выпадающем списке есть некоторые элементы и вы ссылаетесь на комбо, которое вы намеревались:)

0 голосов
/ 16 сентября 2010

Хорошо, это странно, мне удалось решить проблему, поместив каждый цикл в отдельный метод, и теперь он работает, в любом случае спасибо за помощь!

...