我擁有的基本概念是有兩個數據網格。其中一個填充我想要的材料類型和數量作爲基線。該表具有獨特的材料類型。第二個表格可能有多個具有不同數量的相同類型材料的條目。使用來自另一個數據的數據合併數據
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.
我對C#不太熟悉,所以我可能會讀到這個錯誤,但是您是否從Table2讀取了現有的數額,然後重新寫入Table2?在我看來,你正在覆蓋你自己的數據源,而不是寫入一個獨立的源。 – 2012-08-05 18:09:22
哇。這讓我抓住了我的錯誤。第二張表的'刷新'在循環中。把它移到循環外面,就在那裏。 – marcmiller2007 2012-08-05 18:12:33
哎呦,我回答之前我看到你回覆了我的評論。哦,我在那裏提供了更詳盡的解釋。 – 2012-08-05 18:17:16