CommandBehavior 列挙型

定義

クエリの結果と、データベースに対するその影響についての説明を提供します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
継承
CommandBehavior
属性

フィールド

CloseConnection 32

コマンドが実行された場合、関連付けられている DataReader オブジェクトが閉じられたときに、関連付けられている Connection オブジェクトが閉じられます。

Default 0

クエリで複数の結果セットが返される場合があります。 クエリを実行すると、データベースの状態に影響を与えることがあります。 DefaultCommandBehavior フラグを設定しないので、ExecuteReader(CommandBehavior.Default) の呼び出しは、機能的には ExecuteReader() の呼び出しと同じです。

KeyInfo 4

クエリでは列と主キーの情報が返されます。 プロバイダーによって、既存の主キーおよびタイムスタンプ列の結果セットに列が追加されます。

SchemaOnly 2

クエリでは列情報のみが返されます。 SchemaOnly を使用している場合、SQL Server 用 .NET Framework データ プロバイダーは実行するステートメントの前に SET FMTONLY ON を指定します。

SequentialAccess 16

DataReader が大きなバイナリ値が格納されている列を含む行を処理できるようにします。 SequentialAccess を使用すると、DataReader は行全体を読み込むのではなく、ストリームとしてデータを読み込むことができます。 その後、GetBytes メソッドまたは GetChars メソッドを使用して、読み込み動作を開始するバイト位置、返すデータの制限付きバッファー サイズを指定できます。

SingleResult 1

クエリでは単一の結果セットが返されます。

SingleRow 8

クエリは、最初の結果セットの単一行を返すと想定されます。 クエリを実行すると、データベースの状態に影響を与えることがあります。 一部の .NET データ プロバイダーではこの情報を使用してコマンドのパフォーマンスを最適化することもできますが、この情報の使用は必須ではありません。 OleDbCommand オブジェクトの ExecuteReader() メソッドで SingleRow を指定すると、OLE DB IRow インターフェイスが使用できる場合、OLE DB 用 .NET Framework データ プロバイダーはこのインターフェイスを使用してバインドを実行します。 それ以外の場合は、IRowset インターフェイスを使用します。 SQL ステートメントが単一行のみを返すことが予期される場合、SingleRow を指定すると、アプリケーションのパフォーマンスも向上します。 複数の結果セットを返すことが予期されるクエリを実行する場合は、SingleRow を指定できます。 その場合、複数の結果セットの SQL クエリと単一行の両方が指定されていると、返される結果には最初の結果セットの 1 行目のみが含まれます。 クエリの他の結果セットは返されません。

注釈

値はCommandBehavior、 および実装クラスの IDbCommand メソッドによってExecuteReader使用されます。

これらの値のビット演算の組み合わせを使用できます。

CommandBehaviorは、 または SqlDependency を定義SqlNotificationRequestするために使用される場合は無視されるため、使用しないでください。 この 2 つのケースでは、パラメーターを CommandBehavior 必要としないコンストラクターを使用します。

個々の列挙メンバーに関する注意事項

を使用KeyInfoする場合、SQL Server の.NET Framework データ プロバイダーは、 と でSET FMTONLY OFF実行されるステートメントの前に置きますSET NO_BROWSETABLE ON。 ユーザーは、ステートメントの使用 SET FMTONLY ON に対する干渉など、潜在的な副作用に注意する必要があります。 詳細については、「SET FMTONLY (Transact-SQL)」をご覧ください。

Note

大きな値とバイナリ データを取得するには、 を使用 SequentialAccess します。 それ以外の場合は、 OutOfMemoryException が発生し、接続が閉じられます。

を指定 SequentialAccessする場合は、返される順序で列から読み取る必要がありますが、各列を読み取る必要はありません。 返されたデータ ストリーム内の場所を過ぎて読み取ると、その位置以前のデータは から DataReader読み取れなくなります。 を OleDbDataReader使用する場合は、現在の列の値を読み上げるまで読み直すことができます。 を使用する場合は SqlDataReader、列の値を 1 回だけ読み取ることができます。

適用対象