在 C# 中插入 SQL 后更新 table
Update a table after an insert in SQL in C#
我有这段代码,它在下订单后将数量和商品 ID 插入数据table 会话的订单详细信息中。
for (i = 0; i <= dt2.Rows.Count - 1; i++) {
sql = "INSERT INTO details (ID, itemID, Qty) " + " VALUES " + " ('" + stroID + "','" + dt2.Rows[i]["itemID"] + "','" + dt2.Rows[i]["qty"] + "')";
sql = string.Format("UPDATE Items SET AvailQty = AvailQty - {0} WHERE itemID = {1}", dt2.Rows[i]["qty"],stroID);
var _with1 = cmd;
_with1.Connection = con;
_with1.CommandText = sql;
_with1.CommandType = CommandType.Text;
_with1.ExecuteNonQuery();
}
但是,我不确定如何从可用数量中减去数量。
我有另一个名为 Items 的 table,它有一个字段 AvailQty
,我知道如何进行查询,
UPDATE Items
SET AvailQty = AvailQty - Qty
WHERE itemID = stroID
但是我不确定在这种情况下该怎么做,因为我正在使用 dt2.rows?
谁能帮助我如何从 Qty 更新 AvailQty?
您的存储过程应如下所示。 (c#我让你自己处理):
CREATE PROCEDURE OrderAnItem(
@ID int,
@itemID int,
@Qty int
)
AS
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO details (ID, itemID, Qty) VALUES (@ID, @ItemId, @Qty)
UPDATE Items SET AvailQty = AvailQty - @Qty WHERE itemID = @itemID
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
END CATCH
注意代码直接写在这里,可能有错误
我有这段代码,它在下订单后将数量和商品 ID 插入数据table 会话的订单详细信息中。
for (i = 0; i <= dt2.Rows.Count - 1; i++) {
sql = "INSERT INTO details (ID, itemID, Qty) " + " VALUES " + " ('" + stroID + "','" + dt2.Rows[i]["itemID"] + "','" + dt2.Rows[i]["qty"] + "')";
sql = string.Format("UPDATE Items SET AvailQty = AvailQty - {0} WHERE itemID = {1}", dt2.Rows[i]["qty"],stroID);
var _with1 = cmd;
_with1.Connection = con;
_with1.CommandText = sql;
_with1.CommandType = CommandType.Text;
_with1.ExecuteNonQuery();
}
但是,我不确定如何从可用数量中减去数量。
我有另一个名为 Items 的 table,它有一个字段 AvailQty
,我知道如何进行查询,
UPDATE Items
SET AvailQty = AvailQty - Qty
WHERE itemID = stroID
但是我不确定在这种情况下该怎么做,因为我正在使用 dt2.rows?
谁能帮助我如何从 Qty 更新 AvailQty?
您的存储过程应如下所示。 (c#我让你自己处理):
CREATE PROCEDURE OrderAnItem(
@ID int,
@itemID int,
@Qty int
)
AS
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO details (ID, itemID, Qty) VALUES (@ID, @ItemId, @Qty)
UPDATE Items SET AvailQty = AvailQty - @Qty WHERE itemID = @itemID
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
END CATCH
注意代码直接写在这里,可能有错误