在datagridview中计算相同的选定值并在QTY column-C#中显示计数结果

时间:2017-04-04 14:17:48

标签: c# winforms datagridview

我有两个datagridview。

1)datagridviewMenu

2)Dategrideviewfactor

无论何时我在菜单中选择一行,该行都会显示在dategridviewFactor ..

我想要我在照片中显示的结果,我不想添加qty = 1的新行!我想总结选择行

单击菜单行 - > QTY = 1

2单击菜单行 - > QTY = 2

3单击菜单行 - > QTY = 3

。 。

10单击菜单行 - > QTY = 10

enter image description here

enter image description here

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(); }

1 个答案:

答案 0 :(得分:0)

            foreach (DataRow item in dt.Rows)
            {
                int n = dataGridViewFaktor.Rows.Add();

在上面的foreach中,您将dataGridViewFaktor添加新行,而不是之前检查此行是否已存在。如果该行已存在,则只需更新其数量列值。这样您就可以获得预期的结果。

要检查该行是否已存在,您可以比较FoodName列,或者最好是Food ID,如果每行保留一行。