将另一列的两列 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;
}
我有这个 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;
}