如何从表中删除单个条目?
本文关键字:单个条 删除 | 更新日期: 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