[英]How can I delete a single entry from a table
我有一個帶有用戶名的列表框和一個刪除按鈕,我希望在單擊刪除按鈕時刪除所選的用戶(與該用戶關聯的所有輸入數據)。
我的密碼
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();
有關如何在SQL中使用參數的信息,請參見此線程 。
當執行刪除查詢時,為了只刪除表中的1行,您需要添加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語句中加入聯接,以進行更復雜的刪除查詢
DELETE A FROM Table A
INNER JOIN TableB B ON A.Key = B.Key
WHERE B.PrimaryField = Value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.