0

看这个:

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

请注意,两个可能的输出都有一个消息框。但是,当我运行它时,什么都没有出现,其余代码继续运行......

编辑:添加了周围的循环!

4

3 回答 3

2

你为什么要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");
}
于 2010-09-16T01:12:11.897 回答
1

在评估相等性之前,尝试评估条件的左右部分。我只能想象它一定是抛出了一个被默默捕获的异常。这将帮助您调试问题。

例如:

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

编辑:现在我看到您正在使用循环,回到基础,循环是否还在运行?低技术调试,检查组合框中是否有一些项目,并且您正在引用您想要的组合:)

于 2010-09-16T01:17:46.773 回答
0

Ok this is strange, I managed to solve the problem by puting each loop on a separate method, and now it works, thanks for the help anyways!

于 2010-09-16T02:07:45.203 回答