我有两种形式的Form1(DGV1 & DGV2)
和Form2(DGV3 & DGV4)
,两种形式都带有Datagridview
控件。
在Form1
上,有一个指向Form2
的按钮链接,用户可以在其中添加行到Form1
datagridview(DGV1)
。在Form2 → (DGV3 and DGV4)
中,第一列中有一个checkbox
,用户一次只能选择一行。Form2
上有两个按钮:Done
和Add Items
当用户通过依次选择行来单击“添加项目”时,必须将行添加到datagridview
上的Form1
中,并且当单击“完成”按钮时,应显示Form1
并添加所有已添加的行。
我已经做到了。DGV1
和DGV2
中的列是
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
的过程中,如何根据SellQty
的ItemID
获取Form → DGv2
的总和,并更新SellQty
中DGV1
的值。示例:
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/