次の方法で共有


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* メソッドに適用されます。ストリームの読み取り中に呼び出すことができるためです。

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

返された型は、次のどの型でもありませんでした。

  • binary
  • image
  • varbinary
  • udt

注釈

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

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

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

SqlExceptionからStream発生した例外は例外としてIOExceptionスローされます。の内部例外をチェックしますSqlException

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

  • BeginWrite

  • EndWrite

  • 長さ

  • [位置]

  • Seek

  • SetLength

  • Write

  • WriteByte

  • WriteTimeout

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

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

適用対象