0

当我运行这段代码时,我有一个奇怪的结果——当 onHand 低于 Min 我想要某种警报时,我有一个带有基本股票列表(名称、onHand、Min)的 datagridview。我遇到的问题是我将值提供给消息框,这样我就可以看到发生了什么,如果我将“onHand”值放在顶部的“if”块中,它总是输出为零,但“min”输出正确的价值观。如果我将“Min”值放在顶部的“if”块中,则结果为零,并且“onHand”显示正确的值。我一直在尝试修复它一段时间,但无法弄清楚我做错了什么。目前,我在顶部的“if”块中有“min”,并且消息框始终将 min 显示为零,但为“onHand”提供了正确的值。

编码:

 private void btnLows_Click(object sender, EventArgs e)
    {

        int onHand = 0;
        int min = 0;
        int counter;


        for (counter = 0; counter < (dataGridView1.Rows.Count);
               counter++)
        {
            if (dataGridView1.Rows[counter].Cells["min"].Value
            != null)
            {
                if (dataGridView1.Rows[counter].Cells["min"].Value.ToString().Length != 0)
                {
                   onHand = int.Parse(dataGridView1.Rows[counter].Cells["min"].Value.ToString());

                   if (dataGridView1.Rows[counter].Cells["onHand"].Value != null)
                   {
                       if (dataGridView1.Rows[counter].Cells["onHand"].Value.ToString().Length != 0)
                       {
                           onHand = int.Parse(dataGridView1.Rows[counter].Cells["onHand"].Value.ToString());

                           if (onHand < min)
                           {
                               MessageBox.Show(onHand.ToString(), min.ToString());
                           }
                           else
                           {
                               MessageBox.Show(onHand.ToString(), min.ToString());
                           }
                       }
                   }
                }

            }
4

1 回答 1

1

这一行(在你的 for 循环中的第一个嵌套 if 语句内):

onHand = int.Parse(dataGridView1.Rows[counter].Cells["min"].Value.ToString());

应该是:

min = int.Parse(dataGridView1.Rows[counter].Cells["min"].Value.ToString());

目前,当您定义它时,您从未设置min为 0 以外的任何其他值。

于 2012-08-03T14:02:53.483 回答