一个DELETE查询,如何知道没有删除?

时间:2012-09-21 08:30:45

标签: c# .net sql select

我目前正在研究与SQL-Server基础相关的C#应用​​程序。

这很简单,您可以通过应用程序中的某些字段在SQL表中添加或删除条目。

问题是: 在删除操作上,我做了这样的查询:

DELETE FROM table 
 WHERE ID = @ID 

它会删除我要求删除的内容,但是如果查询在DB中没有找到任何内容会怎样? 我怎么能检测出来? 因为在这种情况下,应用程序不会删除任何内容,也不会引发异常。 为了缩短它,我想告诉用户在这种情况下没有什么可以删除。

3 个答案:

答案 0 :(得分:11)

如果您使用的是SqlCommand个对象,则会有一个名为 ExecuteNonQuery 的方法。该方法返回受影响的行数。所以,零意味着没有。

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        int rowsAffected = command.ExecuteNonQuery(); // <== this
    }
}

答案 1 :(得分:3)

delete from table where ID=@id
select @@rowcount

这将返回实际删除的行数。你不需要存在。

答案 2 :(得分:2)