C# 计算2个datagridview列的行数必须相同
我有两个数据网格视图,一个用于购买,一个用于销售 我把销售总额加起来,再减去购买总额 问题是,它只会在两个DataGridView的行数相同的情况下进行计算,如果其中一个视图的行数大于另一个视图的行数,它将不会在显示结果的文本框中给出任何值 这是我的密码C# 计算2个datagridview列的行数必须相同,c#,ms-access,C#,Ms Access,我有两个数据网格视图,一个用于购买,一个用于销售 我把销售总额加起来,再减去购买总额 问题是,它只会在两个DataGridView的行数相同的情况下进行计算,如果其中一个视图的行数大于另一个视图的行数,它将不会在显示结果的文本框中给出任何值 这是我的密码 private void GrossSale() { int sum = 0; for (int i = 0; i < dataGridView1.Rows.Count; ++i) { sum +=
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();
}
private void grossale()
{
整数和=0;
对于(int i=0;i
看看TotalGross()。您正在循环使用dataGridView2.Rows.Count,但同时访问dataGridView1.Rows[i]和dataGridView2.Rows[i]在循环中…请尝试使用。谢谢@JacobH的回复,我是否仍要在计算中使用?您有数据表吗?这是关键。如果你这样做,那么你只需要创建2个整数,计算这个值,然后减去整数。不需要循环。如果您没有数据表,请查看下面的@Mark answer。或者,见鬼,可能只是绑定一个数据表,然后忘记循环计算。所以我应该为每个datagridview使用For循环,然后计算解决了这个问题,谢谢,实际上,您可以分别在每个datagridview上循环。