2015-12-17 199 views
1

我正在創建一個將創建,刪除,更新客戶端信息的MVC應用程序。我創建了一個數據庫,並且我的連接成功。我也有一個函數可以讀取數據庫並添加到數據庫中。我目前正在處理我的刪除功能。我不確定如何處理這個功能。我知道將刪除我的數據庫中的特定行的SQL調用。如何解決從數據庫中刪除的刪除功能

例如 DELETE FROM Table_1 WHERE ClientNumber = whatever

據我瞭解,這將只刪除是在刪除字符串明確提到該行。但是,如果我刪除客戶名稱「John」,稍後我還想刪除客戶名稱「Jim」,那麼該怎麼辦?我怎樣才能做出一個功能,可以根據最終用戶的決定從數據庫中動態刪除。到目前爲止,這是我得到的。

我引入的參數是一個由「ClientName,CleintType,ClientNumber」組成的對象。

public void DeleteClient(ClientInfo client) { 
    using(SqlCommand command = new SqlCommand("DELETE FROM Table_1 WHERE ClientNumber = 'client' ")) { 
    } 
} 

回答

2

使用您的客戶端對象的ClientNumber屬性,並使用SqlParameter來傳遞到查詢。

public void DeleteClient(ClientInfo client) 
{ 
    var qry="DELETE FROM table_1 where [email protected]"; 
    using(var c=new SqlConnection("YourConnString")) 
    { 
     using (var command = new SqlCommand(qry)) 
     { 
     command.Parameters.AddWithValue("@clientNumber", client.ClientNumber); 
     c.Open(); 
     command.ExecuteNonQuery(); 
     } 
    } 
} 
+1

非常感謝您的幫助 – EasyE

-1

如果你想刪除基於名稱,那麼只有你現有的sqlcommand必須改變。像

string name = "clientname"; 
SqlCommand command = new SqlCommand("DELETE FROM Table_1 WHERE ClientName = '" + name +"' "); 
+1

在我看來,不使用SQL參數是有害的建議。這就是爲什麼我給你一個-1。如果您不同意,請運行您的代碼並刪除名爲''的人; drop table Table_1; - ' –

+0

在啓動sql之前不應該驗證並停止該操作嗎?我會。 – Necrovore

+0

這解釋它http://xkcd.com/327/ – Shyju