我有两个datagridview。
1)datagridviewMenu
和
2)Dategrideviewfactor
无论何时我在菜单中选择一行,该行都会显示在dategridviewFactor
..
我想要我在照片中显示的结果,我不想添加qty = 1的新行!我想总结选择行
单击菜单行 - > QTY = 1
2单击菜单行 - > QTY = 2
3单击菜单行 - > QTY = 3
。 。
10单击菜单行 - > QTY = 10
private void dataGridViewMenu_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex==0)
{
SqlDataAdapter sda = new SqlDataAdapter(@"select FoodName,FoodCategory,FoodPrice from ResturanFood
where FoodName='" + dataGridViewMenu.CurrentRow.Cells[0].Value.ToString() + "'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
foreach (DataRow item in dt.Rows)
{
int n = dataGridViewFaktor.Rows.Add();
int jam = 1;
dataGridViewFaktor.Rows[n].Cells[0].Value = item[0].ToString();
dataGridViewFaktor.Rows[n].Cells[1].Value = item[1].ToString();
dataGridViewFaktor.Rows[n].Cells[2].Value = item[2].ToString();
dataGridViewFaktor.Rows[n].Cells[3].Value = jam;
foreach (DataGridViewRow row in dataGridViewFaktor.Rows)
{
row.Cells[dataGridViewFaktor.Columns["Column6"].Index].Value = (Convert.ToDouble(row.Cells[dataGridViewFaktor.Columns["Column5"].Index].Value) * Convert.ToDouble(row.Cells[dataGridViewFaktor.Columns["Column4"].Index].Value));
}
}
}
SumColumn6();
}
答案 0 :(得分:0)
foreach (DataRow item in dt.Rows)
{
int n = dataGridViewFaktor.Rows.Add();
在上面的foreach
中,您将dataGridViewFaktor
添加新行,而不是之前检查此行是否已存在。如果该行已存在,则只需更新其数量列值。这样您就可以获得预期的结果。
要检查该行是否已存在,您可以比较FoodName
列,或者最好是Food ID
,如果每行保留一行。