我的表单中有DataGridView
并保存Button
。我正在将已购买的商品从TextBoxes
添加到DataGridView
,然后点击保存Button
后,它会保存到数据库。这是相同的代码 -
foreach (DataGridViewRow row in dgvOrderList.Rows)
{
if ((bool)row.Cells[0].Value)
{
int productId = Convert.ToInt32(row.Cells["clmCode"].Value);
int quantity = Convert.ToInt32(row.Cells["clmQty"].Value);
int amount = Convert.ToInt32(row.Cells["clmAmount"].Value);
if (_orderBLL.CreateOrderedProduct(productId, quantity, amount, orderId))
{
status = true;
row.Cells[0].Value = false;
}
else
status = false;
}
}
我还有一个名为“删除”的Button
用于删除已购买商品列表中的商品。这是相同的代码 -
foreach (DataGridViewRow row in dgvOrderList.Rows)
{
if (row.Selected)
{
dgvOrderList.Rows.RemoveAt(row.Index);
int div = Convert.ToInt32(row.Cells[5].Value);
total = total - div;
txtTotalAmount.Text = total.ToString();
if (!(bool)row.Cells[0].Value)
{
int productId = Convert.ToInt32(row.Cells[1].Value);
int orderId = Convert.ToInt32(txtOrderId.Text);
if(_orderBLL.IsOrderedProductExists(productId, orderId))
{
_orderBLL.DeleteOrderedProducts(productId, orderId);
}
}
}
}
但问题是,当我点击删除Button
时,它会立即从DataGridView
以及数据库中删除项目,而不是等待保存。
我的问题是,有没有办法只能点击删除DataGridView
从Button
删除项目,然后点击保存Button
后从数据库中删除?
答案 0 :(得分:1)
根据上述评论中的建议,以下是上述问题的解决方案。
删除Button
中的更改。添加整数数组pids[]
以存储将从DataGridView
中删除的产品ID,然后在保存订单和从数据库中删除时检查相同的数据。
foreach (DataGridViewRow row in dgvOrderList.Rows)
{
if (row.Selected)
{
dgvOrderList.Rows.RemoveAt(row.Index);
//break; //use break if you only select one row! if selected more, then remove it!
pids[i] = Convert.ToInt32(row.Cells[1].Value);
i++;
int div = Convert.ToInt32(row.Cells[5].Value);
total = Convert.ToInt32(txtTotalAmount.Text);
total = total - div;
txtTotalAmount.Text = total.ToString();
}
}
在保存Button
foreach (int p in pids)
{
if (p != 0)
_orderBLL.DeleteOrderedProducts(p, orderId);
}