簡體   English   中英

如何從表中刪除單個條目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM