sql >> データベース >  >> RDS >> Sqlserver

クエリ文字列にもかかわらず、SQLCOUNTを使用すると-1を返すExecuteNonQuery

    MSDNに基づく:

    UPDATE、INSERT、およびDELETEステートメントの場合、戻り値はコマンドの影響を受ける行数です。挿入または更新される表にトリガーが存在する場合、戻り値には、挿入または更新操作の両方の影響を受ける行数と、1つまたは複数のトリガーの影響を受ける行数が含まれます。他のすべてのタイプのステートメントの場合、戻り値は-1です。ロールバックが発生した場合、戻り値も-1になります。

    コマンドの影響を受ける行数を返し、それをintに保存します。 変数ですが、ステートメントのタイプがselectであるため したがって、-1を返します 。

    解決策 :SELECTコマンドの影響を受ける行数を取得し、それをint変数に保存する場合は、ExecuteScalarを使用できます。 。

    var theCount = (int)cmd.ExecuteScalar();
    


    1. PostgreSQLのパフォーマンスに関するチートシート

    2. SESSION_CONTEXT()がSQLServerでどのように機能するか

    3. MySQLIN条件制限

    4. スナップショットレプリケーションを作成する方法