2012-04-04 69 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()