如何从表中删除单个条目?

本文关键字:单个条 删除 | 更新日期: 2023-09-27 18:06:24

我有一个包含用户名的列表框和一个删除按钮,我希望选中的用户(与该用户关联的所有输入数据)在单击删除按钮时被删除。

我的代码
SqlConnection con = new SqlConnection("Data Source=JAMES-PC''SQLEXPRESS;Initial Catalog=staff;Integrated Security=True");
con.Open();
string sql = @"DELETE FROM staff1;";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();

这段代码删除了整个表。

如何删除选中的用户?

如何从表中删除单个条目?

您需要一个WHERE子句来选择所需的记录。您必须获得要删除的选定用户的用户名,并将其传递给@UserName参数。

 var userName = (listBox.SelectedItem as DataRowView)["UserName"].ToString();
 string sql = @"DELETE FROM staff1 WHERE Username = @UserName;";
 SqlCommand cmd = new SqlCommand(sql, con);
 cmd.Parameters.AddWithValue("@UserName",useName);
 cmd.ExecuteNonQuery();
 con.Close();

在执行删除查询时,为了只从表中删除一行,您需要添加WHERE子句。

根据注释,工作流应该是这样的:您单击删除按钮,将要删除的人员的名称发送到命令,看起来像:

 string sql = @"DELETE FROM staff1 where Name=@Name;";
 SqlCommand cmd = new SqlCommand(sql, con);
 cmd.Parameters.AddWithValue("@Name","NameReceivedFromList");
 cmd.ExecuteNonQuery();
 con.Close();

当你要删除时,你应该记得添加Where子句,它实际上是非常强大的这里有一些例子,可以让你开始

下面的查询将只删除一个元素

DELETE FROM Table WHERE Table.PrimaryField = Value

下面的查询将删除所有与

匹配的项
DELETE FROM Table WHERE Table.Field = Value

对于更复杂的删除查询,也可以在delete语句中使用join

DELETE A FROM Table A 
INNER JOIN TableB B ON A.Key = B.Key
WHERE B.PrimaryField = Value