我所拥有的基本概念是有两个数据网格。一个填充了我想要作为基线的材料类型和数量。该表具有独特的材料类型。第二个表可能有多个具有不同数量的相同类型材料的条目。
Table 1 Table 2
F01 20/40 150 F01 20/40 40
F01 30/50 150 F01 20/40 50
F01 50/90 150 F01 20/40 100
F01 70/110 150 F01 30/50 60
由于表 1 中的每种材料类型都是唯一的,因此我将获取每一行(单元格索引 [0])并循环遍历第二列中的每一行,并将每种匹配材料类型的数量相加。
我被卡住了一段时间,为什么我的循环在成功计算出第一种材料类型后不断中断。这是我的代码:
private void combineButton_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataRow dtrow;
dt.Columns.Add("Material");
dt.Columns.Add("OnHand_Qty");
int x = 0;
foreach (DataGridViewRow row in baseStockGrid.Rows)
{
string material = row.Cells[0].Value.ToString();
foreach (DataGridViewRow crow in currentOnHandGrid.Rows)
{
string check = crow.Cells[0].Value.ToString();
if (check == material)
{
var y = crow.Cells[1].Value.ToString();
x = int.Parse(y) + x;
}
if (check != material)
{
continue;
}
}
dtrow = dt.NewRow();
dtrow[0] = material.ToString();
dtrow[1] = x;
dt.Rows.Add(dtrow);
x = 0;
currentOnHandGrid.DataSource = dt;
}
}
我基本上刷新数据网格以显示组合材料计数,它显示如下:
Table1 Table2
F01 20/40 150 F01 20/40 190
F01 30/50 150 F01 30/50 0 //<---- Should show 60 according to example above.