2017-02-21 3 views
-1

Ich habe folgenden Code zum Löschen von Datensatz aus meiner SQL Server-Datenbank verwendet, aber diese Abfrage löschte alle meine Datensätze. Ich möchte nur die ausgewählte Zeile löschen, nicht alle.Abfrage löschen in C# zum Löschen ausgewählter Zeile

SqlCommand cmd = new SqlCommand("DELETE FROM tablename WHERE id=id ", con); 
cmd.ExecuteNonQuery(); 
+0

Es ist nichts falsch mit Ihrer Abfrage. Vielleicht sollten Sie Ihre ID-Spalte in der Datenbank überprüfen. Ich denke, alle Zeilen haben die gleiche ID. – Dronacharya

+3

'wo ID = ID 'bedeutet, dass alle Zeilen übereinstimmen, in denen das ID-Feld dieser Zeile dem ID-Feld dieser Zeile entspricht. Mit anderen Worten, passen Sie alle Zeilen an. Sie benötigen einen Parameter .. 'where id = @ id' und geben dann den entsprechenden Wert – pinkfloydx33

+0

an, aber ich möchte die ausgewählte Zeile aus meinem DataGridView löschen, aber den gesamten Datensatz löschen. –

Antwort

0

Sie sollten param id übertragen, mein Freund. Siehe den folgenden Code:

var Id = ""; //set the value that you want to delete 

SqlCommand cmd = new SqlCommand("DELETE FROM tablename WHERE [email protected] ", con); 
command.Parameters.AddWithValue("@Id", Id); 
cmd.ExecuteNonQuery();