【问题标题】:Sum values in column that match selected value in other column对与其他列中的选定值相匹配的列中的值求和
【发布时间】:2018-05-09 11:58:09
【问题描述】:

如何从“数量”列中获取与“Le Nom”列中的选定值匹配的值的总和。例如:

Le Nom      Quantity
HEA200      200
HEB300      150
IPE450      700
HEA200      300

假设选择了第一行,我想将第一行 (200) 和第四行 (300) 相加,因为它们共享相同的值 (HEA200)。

这是我获取所有值总和的代码,但我无法实现我的目标。

int sum = 0;

string NameProfil = 
    gridView2.GetRowCellValue(gridView2.FocusedRowHandle, "Le Nom").ToString();

for (int i = 0; i < gridView2.RowCount; i++) 
{
    sum += int.Parse(Convert.ToString(gridView2.GetRowCellValue(i, "Quantité")));
}

MessageBox.Show(sum.ToString() + " "+ NameProfil);

【问题讨论】:

  • 您需要 GroupBy 第一列。

标签: c# winforms gridview devexpress


【解决方案1】:
int sum = 0;
string NameProfil = gridView2.GetRowCellValue(gridView2.FocusedRowHandle, "Le Nom").ToString();

for (int i = 0; i < gridView2.RowCount; i++) 
{
    if(gridView2.GetRowCellValue(i, "Le Nom").ToString() == NameProfil)
    {
        sum += int.Parse(gridView2.GetRowCellValue(i, "Quantité").ToString());
    }
}

MessageBox.Show(sum + " "+ NameProfil);

应该可以解决问题。

此外,当尝试将 sumstrings 连接时,.ToString() 将被隐式调用,因此 - 虽然不是不正确 - 它是不需要的。

【讨论】:

  • 我添加 .ToString() :sum += int.Parse(gridView2.GetRowCellValue(i, "Quantité").ToString());
  • @M.Bouabdallah 你说得对,在我的脑海里int.Parse 可以接受除string 之外的其他东西,但我错了。结果我编辑了我的答案
  • 你能帮我在点击按钮时让这段代码工作吗,现在我在 ValidateRow 事件上使用它,我尝试制作两个循环,但我让代码太乱了,提前谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
  • 2021-06-27
  • 1970-01-01
相关资源
最近更新 更多