SqlDataReader.GetStream(Int32) 方法

定义

检索作为 Stream 的二进制、图像、varbinary、UDT 和变量数据类型。

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

从零开始的列序号。

返回

一个流对象。

例外

连接中断或在数据检索期间已关闭。

数据检索期间,SqlDataReader 处于关闭状态。

没有要读取的就绪数据 (例如,第一个 Read() 未被调用或返回错误)。

按顺序模式尝试读取上一步骤中读取的列。

没有正在进行的异步操作。 以顺序模式运行时,这适用于所有 Get* 方法,读取流时也可对其进行调用。

尝试读取不存在的列。

返回的类型不属于以下类型之一:

  • binary

  • image

  • varbinary

  • udt

注解

ReadTimeout默认为 的值CommandTimeout;但可以通过 进行修改ReadTimeoutGetStream

null 值将作为空 (零字节) Stream返回。

GetBytes当 对由 返回GetStream的对象使用时SequentialAccess,将引发异常InvalidOperationException

SqlExceptionStream 引发的异常作为IOException异常引发;检查 的内部SqlException异常。

以下 Stream 成员不适用于 返回 GetStream的对象:

  • BeginWrite

  • EndWrite

  • 长度

  • 位置

  • Seek

  • SetLength

  • 写入

  • WriteByte

  • WriteTimeout

当连接属性 ContextConnection=true为 时, GetStream 仅支持对顺序 (SequentialAccess) 和非顺序 (Default) 访问进行同步数据检索。

有关详细信息,请参阅 SqlClient 流式处理支持

适用于