SqlDataReader.GetStream(Int32) メソッド

定義

バイナリ、イメージ、varbinary、UDT、およびバリアント データ型を Streamとして取得します。

public:
 override System::IO::Stream ^ GetStream(int i);
public override System.IO.Stream GetStream(int i);
override this.GetStream : int -> System.IO.Stream
Public Overrides Function GetStream (i As Integer) As Stream

パラメーター

i
Int32

0 から始まる列の序数。

返品

ストリーム オブジェクト。

例外

データの取得中に接続が切断されるか、閉じられます。

SqlDataReaderは、データの取得中に閉じられます。

読み取る準備ができているデータがありません (たとえば、最初の Read() が呼び出されていないか、false が返されました)。

シーケンシャル モードで以前に読み取った列を読み取ろうとしました。

非同期操作が進行中でした。 これは、ストリームの読み取り中に呼び出すことができるため、シーケンシャル モードで実行されている場合は、すべての Get* メソッドに適用されます。

存在しない列を読み取ろうとしています。

返された型は、次の型の 1 つではありません。

  • binary
  • イメージ
  • varbinary
  • udt

注釈

ReadTimeoutは既定で CommandTimeout の値になりますが、GetStreamを使用してReadTimeoutを変更できます。

null 値は、空の (0 バイト) Streamとして返されます。

GetBytesは、SequentialAccessが有効な場合にGetStreamによって返されるオブジェクトで使用すると、InvalidOperationException例外を発生させます。

SqlException Streamから発生した例外は、IOException例外としてスローされます。SqlExceptionの内部例外を確認してください。

次の Stream メンバーは、 GetStreamによって返されるオブジェクトでは使用できません。

  • 書き込み開始

  • EndWrite

  • 長さ

  • 職位

  • 完璧さ

  • 長さを設定

  • 書き込む

  • WriteByte

  • WriteTimeout

接続プロパティが ContextConnection=true場合、 GetStream はシーケンシャル (SequentialAccess) アクセスと非シーケンシャル (Default) アクセスの両方に対してのみ同期データ取得をサポートします。

詳細については、「 SqlClient ストリーミング サポート」を参照してください。

適用対象