次の方法で共有


コマンドの実行

データ ソースへの接続を確立した後、Command オブジェクトを使用してコマンドを実行し、データ ソースから結果を返すことができます。開発者は、オプション引数として SQL ステートメントを使用して、そのデータ ソース上で実行する Command コンストラクタ、接続に関連する Connection オブジェクト、および Transaction オブジェクトを使用してコマンドを作成できます。また、Connection オブジェクトの CreateCommand メソッドを使用して、特定の Connection 用のコマンドを作成することもできます。CommandText プロパティを使用すると、Command オブジェクトの SQL ステートメントを照会したり変更したりできます。

Command オブジェクトは、目的のアクションを実行するために使用できるいくつかの Execute メソッドを公開します。結果をデータ ストリームとして返すときは、ExecuteReader を使用して DataReader オブジェクトを返します。シングルトン値を返すには、ExecuteScalar を使用します。行を返さないコマンドを実行するには ExecuteNonQuery を使用します。

ストアド プロシージャと共に Command オブジェクトを使用するときは、Command オブジェクトの CommandType プロパティを StoredProcedure に設定することもできます。StoredProcedureCommandType と共に、CommandParameters プロパティを使用して入力パラメータ、出力パラメータ、および戻り値にアクセスできます。Parameters プロパティには、Execute メソッドが呼び出されたかどうかに関係なくアクセスできます。しかし、ExecuteReader を呼び出すときは、DataReader が終了するまでは戻り値や出力パラメータにアクセスできません。

次のサンプル コードでは、Northwind データベースから Categories のリストを返すように Command オブジェクトをフォーマットする方法を示します。

SqlClient

Dim catCMD As SqlCommand = New SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
[C#]
SqlCommand catCMD = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

OleDb

Dim catCMD As OleDbCommand = New OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
[C#]
OleDbCommand catCMD = new OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

コマンドのパフォーマンス カウンタ

.NET Framework Data Provider for SQL Server には、失敗したコマンド実行に関連して断続的に発生する問題を検出できるパフォーマンス カウンタが追加されています。.[パフォーマンス モニタ] の中で、[NET CLR Data] パフォーマンス オブジェクト内にある、[SqlClient: Total # failed commands] (SqlClient: 失敗したコマンドの合計数) カウンタにアクセスすると、なんらかの理由で失敗したコマンド実行の合計数を確認できます。

メモ   .NET Framework Data Provider for SQL Server のパフォーマンス カウンタを ASP.NET アプリケーションと共に使用する場合は、_Global インスタンスだけが使用できます。その結果、パフォーマンス カウンタが返す値は、すべての ASP.NET アプリケーションのカウンタ値の合計となります。

参照

.NET Framework データ プロバイダによるデータのアクセス | コマンドによるストアド プロシージャの使用 | DataReader によるデータの取得 | データベースからの単一の値の取得 | データベース操作の実行とデータ変更 | OleDbCommand クラス | OleDbDataReader クラス | SqlCommand クラス | SqlDataReader クラス