【发布时间】:2018-11-29 17:36:18
【问题描述】:
我在数据库中有一个批处理表,其中包含名为 Quantity、Sold_qty 和 Left_qty 的列。假设我在表中有这些数据。
Quantity||Sold_qty||Left_qty
20 || 15 || 5
然后我想做的是,当我更新它们时,假设我更新已售出的数量少于已存储在数据库中的数量,那么它应该更新库存并应该减少已售数量并增加剩余数量。
--例如,如果我为 Sold_qty 提供 10,则为 10
Quantity||Sold_qty||Left_qty
20 || 10 || 10
我将数据存储在 Datagrid 中。数据网格中有多行。我已经写了这段代码。任何帮助,将不胜感激。
int difference = Convert.ToInt32(textBox3.Text)-ordr_qty;
textBox9.Text = difference.ToString();
for (int i = 0; i < newDt.Rows.Count; i++)
{
SqlCommand command = new SqlCommand("update batch set sold_qty=sold_qty-@soldqty2 where id=@id2", con);
command.Parameters.AddWithValue("@soldqty2", Convert.ToInt32(newDt.Rows[i]["qty"]));
command.Parameters.AddWithValue("@id2", Convert.ToInt32(newDt.Rows[i]["batch_num"]));
rexe = command.ExecuteNonQuery();
SqlCommand command3 = new SqlCommand("update batch set left_qty=(select sum(quantity+sold_qty) from batch where id=@id3) where id=@id3", con);
command3.Parameters.AddWithValue("@id3", Convert.ToInt32(newDt.Rows[i]["batch_num"]));
command3.ExecuteNonQuery();
}
【问题讨论】:
-
是
Quantity = Sold_qty + Left_Qty?总是?然后只需读取数量,将新值存储在 Sold_qty 中,并在 Left_qty 中计算值“(数量-Sold_qty)”。无论如何,这个问题与 wpf 没有任何关系,更可能是 sql -
没有预定义数量值。我已经存储了 Quantity 的预定义值
-
我没说你应该改变数量。只有另外两个值。并且在一个 SqlCommand 中更好(否则更好地使用 TransactionScope)
-
有一个只有
Quantity和Sold_qty的表,然后是一个也计算(Quantity - Sold_qty) as Left_qty的视图?
标签: c# sql data-binding datatable datagrid