4

私は現在、SQL-Serverベースに関連してC#アプリを磨いています。

非常に簡単です。アプリケーションのいくつかのフィールドを使用して、SQLテーブルのエントリを追加または削除できます。

質問は:削除アクションで、私はこの種のクエリを実行しました:

DELETE FROM table 
 WHERE ID = @ID 

削除するように要求したものは削除されますが、クエリでDBに何も見つからない場合はどうなりますか?どうすればそれを検出できますか?この場合、アプリケーションは何も削除せず、例外は発生しないためです。簡単に言うと、この場合、削除するものは何もないことをユーザーに伝えたいと思います。

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 に答える