当我运行此代码时,我有一个奇怪的结果 - 当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());
}
}
}
}
}
答案 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。