将另一列的两列 datagridview 单元格值相乘,然后对所有行的值求和

Multiply two column datagridview cell values for another column then sum values of all rows

我有这个 datagridview,我用这段代码对所有处于张力值下的时间求和:

    int finalSum = 0;
for (int p = 0; p < dataGridView1.Rows.Count; ++p)
  {
     finalSum += getCellDigitSum(Convert.ToInt32(dataGridView1.Rows[p].Cells[4].Value));
  }
    
 label22.Text = finalSum.ToString();
    
 int getCellDigitSum(int cellValue)
   {
     int l = cellValue;
     int result = 0;
    
     while (l > 0)
       {
         result += (l % 10);
    
         l = l / 10;
       }
    
    return result;
 }

通过这段代码,我获得了单个值的总和(201 变为 3),然后是所有行的总和。

问题是我需要先将“Serie”列值乘以“Ripetizioni”值,然后将结果乘以“张力下时间”(201 将为 3)的多个数字之和,然后在最后乘以所有行的结果。

这是数据网格视图

所以例如在第一行我需要做 11 x 3 = result x (201 sum so 3).

循环所有行并对值求和

请试试这个。如果您遇到任何问题,请告诉我。可以根据需要修改计算。

        int finalSum = 0;
        for (int p = 0; p < dataGridView1.Rows.Count; ++p)
        {
            finalSum += getCellDigitSum(dataGridView1.Rows[p]);
        }

        //label22.Text = finalSum.ToString();

        int getCellDigitSum(DataGridViewRow dr)
        {
            int serie = Convert.ToInt32(dr.Cells[0].Value);//you can change cell index or use column name
            int ripetizioni = Convert.ToInt32(dr.Cells[1].Value);//you can change cell index or use column name
            //timeundertension
            int l = Convert.ToInt32(dr.Cells[3].Value);
            int sumTimeUnderTension = 0;

            int result = 0;

            while (l > 0)
            {
                sumTimeUnderTension += (l % 10);

                l = l / 10;
            }

            result = serie * ripetizioni * sumTimeUnderTension;
            return result;
        }