我有两种形式的Form1(DGV1 & DGV2)Form2(DGV3 & DGV4),两种形式都带有Datagridview控件。

Form1上,有一个指向Form2的按钮链接,用户可以在其中添加行到Form1 datagridview(DGV1)。在Form2 → (DGV3 and DGV4)中,第一列中有一个checkbox,用户一次只能选择一行。
Form2上有两个按钮:DoneAdd Items
当用户通过依次选择行来单击“添加项目”时,必须将行添加到datagridview上的Form1中,并且当单击“完成”按钮时,应显示Form1并添加所有已添加的行。

我已经做到了。
DGV1DGV2中的列是

DGV1列

Sno Desciption SellQty ItemID
----------------------------
 1    ABC       0         1
 2    XYZ       0         2

DGV2列
Sno BatchNo SellQty ItemID
----------------------------
1    123       10         1
2    528       20         2
1    568       30         1
2    522       40         2

在加载Form1的过程中,如何根据SellQtyItemID获取Form → DGv2的总和,并更新SellQtyDGV1的值。

示例:For ItemID=1 sum(SellQty)=40
所以我需要将此值分配给DGV1 SellQty Column=40

请指教。

最佳答案

以下将为您提供ItemID == 1的总数量-(确保为数据网格使用正确的列名)

int total = DGV1.Rows.Cast<DataGridViewRow>()
                    .Where(r=> Convert.ToInt32(r.Cells["ItemID"].Value) == 1)
                    .Sum(t=> Convert.ToInt32(t.Cells["SellQty"].Value));

编辑:

对于更新的gridview,您可以执行以下操作:
for (int i = 0; i < DGV1.Rows.Count; i++)
{
    if (Convert.ToInt32(DGV1.Rows[i].Cells["ItemID"].Value) == 1)
        DGV1.Rows[i].Cells["SellQty"] = total;
}

关于c# - 使用Linq获取不同ID的datagridview列的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14772598/

10-09 03:12