4

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

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

问题是:在删除操作中,我进行了这种查询:

DELETE FROM table 
 WHERE ID = @ID 

它删除了我要求它删除的内容,但是如果查询在数据库中找不到任何内容怎么办?我怎样才能检测到呢?因为在这种情况下,应用程序不会删除任何内容,也不会引发异常。简而言之,我只想告诉用户在这种情况下没有什么可删除的。

4

3 回答 3

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
    }
}
于 2012-09-21T08:32:42.837 回答
3
delete from table where ID=@id
select @@rowcount

这将返回实际删除了多少行。你不需要存在。

于 2012-09-21T08:32:03.293 回答
2

看看@@ROWCOUNT变量

http://technet.microsoft.com/en-us/library/ms187316.aspx

于 2012-09-21T08:33:49.550 回答