SqlCommand.ExecuteNonQuery メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
接続に対して Transact-SQL ステートメントを実行し、影響を受けた行数を返します。
public:
override int ExecuteNonQuery();
public:
virtual int ExecuteNonQuery();
public override int ExecuteNonQuery ();
public int ExecuteNonQuery ();
override this.ExecuteNonQuery : unit -> int
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Overrides Function ExecuteNonQuery () As Integer
Public Function ExecuteNonQuery () As Integer
戻り値
影響を受けた行の数。
実装
例外
Value が Stream に設定されたときに、Binary でも VarBinary でもない SqlDbType が使用されました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。
- または -
SqlDbTypeが にTextReader設定されている場合Value、Char、NChar、NVarChar、VarChar、または Xml 以外の が使用されました。
- または -
ロックされた行に対するコマンドの実行中に、例外が発生しました。 Microsoft .NET Framework バージョン 1.0 を使用している場合は、この例外は生成されません。
- または -
ストリーミング操作中にタイムアウトが発生しました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。
ストリーミング操作中に、Stream、XmlReader、または TextReader オブジェクトでエラーが発生しました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。
ストリーミング操作中に、SqlConnection が閉じられたか切断されました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。
ストリーミング操作中に、Stream、XmlReader、または TextReader オブジェクトが閉じられました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。
例
次の例では、 を SqlCommand 作成し、 を使用して ExecuteNonQuery実行します。 この例では、Transact-SQL ステートメント (UPDATE、INSERT、DELETE など) である文字列と、データ ソースへの接続に使用する文字列が渡されます。
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
End Sub
注釈
を ExecuteNonQuery 使用すると、カタログ操作 (データベースの構造の照会やテーブルなどのデータベース オブジェクトの作成など) を実行したり、UPDATE、INSERT、DELETE ステートメントを実行して を使用 DataSet せずにデータベース内のデータを変更したりできます。
は行を ExecuteNonQuery 返しませんが、パラメーターにマップされた出力パラメーターまたは戻り値にはデータが設定されます。
UPDATE、INSERT、DELETE の各ステートメントで、戻り値はそのコマンドの影響を受ける行の数です。 その他のすべての種類のステートメントでは、戻り値は -1 です。
挿入または更新されるテーブルにトリガーが存在する場合、戻り値には、挿入操作または更新操作の影響を受ける行の数と、トリガーまたはトリガーの影響を受ける行の数が含まれます。
接続で SET NOCOUNT ON が設定されている場合 (コマンドの実行の前または一部として、またはコマンドの実行によって開始されたトリガーの一部として)、個々のステートメントの影響を受ける行は、このメソッドによって返される行の数に影響を与えなくなります。
カウントに影響するステートメントが検出されない場合、戻り値は -1 になります。 ロールバックが発生した場合、戻り値も -1 になります。
適用対象
こちらもご覧ください
.NET