C#从datagridview中提取值 - 奇怪的结果

时间:2012-08-03 13:57:54

标签: c# datagridview

当我运行此代码时,我有一个奇怪的结果 - 当onHand低于Min时,我有一个带有基本库存列表(name,onHand,Min)的datagridview我想要有某种警报。我遇到的问题是,我将值传递给消息框,这样我就可以看到发生了什么,以及我是否放了' onHand'价值在顶部'如果'阻止它总是出现为零但是“最小”。输出正确的值。如果我把“敏”放在价值在顶部'如果'块出现为零和' onHand'显示正确的值。我一直试图修复它一段时间,但无法弄清楚我做错了什么。目前我已经' 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());
                           }
                       }
                   }
                }

            }

1 个答案:

答案 0 :(得分:1)

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

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

应该是:

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

目前,除非定义min,否则永远不会将{{1}}设置为0。