Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算2个datagridview列的行数必须相同_C#_Ms Access - Fatal编程技术网

C# 计算2个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 +=

我有两个数据网格视图,一个用于购买,一个用于销售

我把销售总额加起来,再减去购买总额

问题是,它只会在两个DataGridView的行数相同的情况下进行计算,如果其中一个视图的行数大于另一个视图的行数,它将不会在显示结果的文本框中给出任何值

这是我的密码

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上循环。