【发布时间】:2023-03-03 10:36:01
【问题描述】:
我正在编写一个程序来维护我们商店的药品库存。
我有一个添加到购物车列表,它打开 SQL 连接并从参数为 @medicine 的整个库存中删除 1 个数量
我的 addToCart listBox 的代码是这样的
using (SqlConnection conn = new SqlConnection(cstring))
{
using(SqlCommand cmd = new SqlCommand("Update Medicine set Quantity = Quantity - 1 where Name = @medicine", conn))
{
conn.Open();
foreach(string item in cartMedicine)
{
cmd.Parameters.AddWithValue("@medicine", item);
cmd.ExecuteNonQuery();
}
conn.Close();
listMedicine.Items.Clear();
}
}
现在我想循环我的cartMedicine 列表以一一获取存储在列表框中的所有名称。但我收到错误消息,
变量名“@medicine”已被声明。变量名 在查询批处理或存储过程中必须是唯一的。'
我如何使用相同的逻辑,每次为我的项目列表中的每个库存提供一个 Adhoc 语句?
【问题讨论】:
-
我建议您使用表值参数批量执行此操作
标签: sql .net .net-core ado.net