【发布时间】:2018-05-24 12:49:11
【问题描述】:
我有 2 个数据网格视图,一个用于购买,一个用于销售
我将销售总额相加并从中减去购买总额。
问题是,它只会在两个 datagridviews 的行数相同的情况下进行计算,如果其中一个的行数比另一个多,它不会在应该显示的文本框中给出任何值结果
这是我的代码
private void GrossSale()
{
int sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value);
}
txtGrossSale.Text = sum.ToString();
}
private void NetSale()
{
int sum2 = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
sum2 += Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value);
}
txtNetSale.Text = sum2.ToString();
}
private void GrossPurchase()
{
int sum3 = 0;
for (int i = 0; i < dataGridView2.Rows.Count; ++i)
{
sum3 += Convert.ToInt32(dataGridView2.Rows[i].Cells[2].Value);
}
txtGrossPurchase.Text = sum3.ToString();
}
private void NetPurchase()
{
int sum4 = 0;
for (int i = 0; i < dataGridView2.Rows.Count; ++i)
{
sum4 += Convert.ToInt32(dataGridView2.Rows[i].Cells[3].Value);
}
txtNetPurchase.Text = sum4.ToString();
}
private void TotalGross()
{
int sum5 = 0;
int sum6 = 0;
int sum7 = 0;
for (int i = 0; i < dataGridView2.Rows.Count; ++i)
{
sum5 += Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value);
sum6 += Convert.ToInt32(dataGridView2.Rows[i].Cells[3].Value);
}
sum7 = sum5 + sum6;
txtGross.Text = sum7.ToString();
}
【问题讨论】:
-
也许改用Compute。
-
感谢@JacobH 的回复,我还应该在计算中使用 For 吗?
-
你有数据表吗?那是关键。如果这样做,那么您只需创建 2 个整数,计算值然后减去整数。不需要循环。如果您没有数据表,请查看下面的@Mark 答案。
-
或者哎呀,也许只是绑定一个数据表而忘记循环计算。 stackoverflow.com/a/3779835/7948962