2012-04-04 50 views
1

我想刪除對應於特定IP地址的行.. 我寫了這個查詢:如何在c#中使用刪除查詢sql數據庫?

string dlt = @"DELETE [LocationIP], [LocationName],[LocationID], 
       [NoOfUsers],[MinutesUsed] FROM [LocationInfo] WHERE [email protected]"; 
    SqlCommand cmd = new SqlCommand(dlt, sqlcon_QOEMetrices); 
    cmd.Parameters.Add("@ipadd", SqlDbType.NChar, 15); 

    cmd.Parameters["@ipadd"].Value = ipadd; 

其中IP地址是存儲在字符串變量IPADD 這個查詢沒有顯示任何結果,但即使沒有給出任何錯誤...

回答

3

你需要execute你的命令。

喜歡的東西:

cmd.ExecuteNonQuery(); 
+0

我相信這是一個錯字的錯誤,先生,'cmd.ExecuteNonQuery();' – 2012-04-04 10:16:47

+0

@johntotetwoo - 感謝您的指正。你可以自己編輯,你知道:) – Oded 2012-04-04 10:17:25

+0

@Oded不要擔心,我做了:-) – 2012-04-04 10:17:39

0

哪裏是你查詢的執行?

cmd.ExecuteNonQuery(); 
-2

試試這個簡單的查詢和執行,

"DELETE FROM LocationInfo WHERE [email protected]" 

    SqlCommand cmd = new SqlCommand(dlt, sqlcon_QOEMetrices); 
    cmd.Parameters.Add("@ipadd", SqlDbType.NChar, 15); 

    cmd.Parameters["@ipadd"].Value = ipadd; 
cmd.ExecuteNonQuery(); 
+0

您需要了解[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)。從安全的角度來看,連接SQL並不是一個好主意。 – Oded 2012-04-04 10:19:04

+0

OP發佈的代碼實際上在這方面好得多。 – Oded 2012-04-04 10:21:35

+0

你,那是正確的Oded, – las 2012-04-04 10:26:18

0

你的SQL是錯誤的,你不希望在DELETE語句選擇列表。

string dlt = @"DELETE FROM [LocationInfo] WHERE [email protected]"; 
SqlCommand cmd = new SqlCommand(dlt, sqlcon_QOEMetrices); 
cmd.Parameters.Add("@ipadd", SqlDbType.NChar, 15); 

就足夠了。那麼我認爲你正在做財產以後像

cmd.ExecuteNonQuery() 
相關問題