MSDNに基づく:
UPDATE、INSERT、およびDELETEステートメントの場合、戻り値はコマンドの影響を受ける行数です。挿入または更新される表にトリガーが存在する場合、戻り値には、挿入または更新操作の両方の影響を受ける行数と、1つまたは複数のトリガーの影響を受ける行数が含まれます。他のすべてのタイプのステートメントの場合、戻り値は-1です。ロールバックが発生した場合、戻り値も-1になります。
コマンドの影響を受ける行数を返し、それをint
に保存します。 変数ですが、ステートメントのタイプがselect
であるため したがって、-1
を返します 。
解決策 :SELECTコマンドの影響を受ける行数を取得し、それをint変数に保存する場合は、ExecuteScalar
を使用できます。 。
var theCount = (int)cmd.ExecuteScalar();