【发布时间】:2015-07-21 14:12:05
【问题描述】:
我有这个代码。第一个代码从通知表中选择电子邮件,然后创建它们的列表,然后我循环并发送电子邮件。
但是,现在我被卡住了,因为我需要从通知表中删除刚刚使用的 notify_id。有人可以帮我解决这个问题。
using (SqlCommand cmd =
new SqlCommand("SELECT email FROM notify WHERE jump_id = @jump_id", con))
{
cmd.Parameters.AddWithValue("@jump_id", jumpid.Text);
SqlDataReader rd = cmd.ExecuteReader();
List<String> user = new List<String>();
while (rd.Read())
{
userAddre.Add((String)rd.GetValue(0));
}
if (userAddre.Count > 0) //if exists
{
//do something
}
using (SqlCommand cmd =
new SqlCommand("DELETE FROM notify WHERE notify_if = ", con))
{
cmd.Parameters.AddWithValue(????);
cmd.ExecuteNonQuery();
}
【问题讨论】:
-
您是否尝试过在第一个查询中获取 notify_if 并将其传递给第二个查询?
-
语法与您在上面的
SELECT语句中使用的语法相同。您只需要同时获取notify_id和email并存储在一个变量中并传递给DELETE查询。 -
另外,SqlCommand
using作用域的嵌套可能会在此处产生错误。 -
“正确”的方法(在许多数据库中)是将 DELETE 与适当的 JOIN/WHERE 子句结合起来,而不是使用两个语句。它还将隐含地避免立即缺少交易的问题。
-
@user2864740 嗨,我该怎么做
标签: c# sql winforms sql-delete