Freigeben über


SqlDataReader.GetStream(Int32) Methode

Definition

Ruft Binary-, Varbinary-, Image-, UDT- und Variant-Datentypen als Stream ab.

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

Parameter

i
Int32

Die nullbasierte Ordnungszahl der Spalte.

Gibt zurück

Ein Streamobjekt.

Ausnahmen

Die Verbindung wird während des Datenabrufs getrennt oder geschlossen.

Der SqlDataReader wird während des Datenabrufs geschlossen.

Es gibt keine Daten, die gelesen werden können (der erste Aufruf von Read() hat z. B. nicht stattgefunden oder "false" zurückgegeben).

Es wurde versucht, eine zuvor gelesene Spalte im sequenziellen Modus zu lesen.

Es gab einen aktiven asynchronen Vorgang. Dies gilt für alle Get*-Methoden bei der Ausführung im sequenziellen Modus, da sie aufgerufen werden können, während des Lesens eines Datenstroms.

Es wurde versucht, eine Spalte zu lesen, die nicht vorhanden ist.

Der zurückgegebene Typ war keiner der folgenden Typen:

  • BINARY

  • image

  • varbinary

  • udt

Hinweise

ReadTimeoutwird standardmäßig auf den Wert von CommandTimeoutfestgelegt. Sie können jedoch über GetStreamändernReadTimeout.

Null-Werte werden als leere (null Bytes) Streamzurückgegeben.

GetBytes löst eine InvalidOperationException Ausnahme aus, wenn sie für ein Objekt verwendet wird, das von GetStream zurückgegeben wird, wenn SequentialAccess wirksam ist.

SqlExceptionAusnahmen, die von Stream ausgelöst werden, werden als IOException Ausnahmen ausgelöst. Überprüfen Sie die innere Ausnahme für .SqlException

Die folgenden Stream Member sind für Objekte, die von GetStreamzurückgegeben werden, nicht verfügbar:

  • BeginWrite

  • EndWrite

  • Länge

  • Position

  • Seek

  • SetLength

  • Schreiben

  • WriteByte

  • WriteTimeout

Bei der Verbindungseigenschaft ContextConnection=trueGetStream wird nur der synchrone Datenabruf für den sequenziellen (SequentialAccess) und nicht sequenziellen (Default) Zugriff unterstützt.

Weitere Informationen finden Sie unter SqlClient-Streamingunterstützung.

Gilt für: