通过


SqlFileStream 类

定义

公开以 FILESTREAM 列属性作为字节序列存储的 SQL Server 数据。

public ref class SqlFileStream sealed : System::IO::Stream
public sealed class SqlFileStream : System.IO.Stream
type SqlFileStream = class
    inherit Stream
Public NotInheritable Class SqlFileStream
Inherits Stream
继承

注解

SqlFileStream 类用于处理 varbinary(max) SQL Server 2008 数据库中使用 FILESTREAM 属性存储的数据。 必须安装 .NET Framework 3.5 SP1(或更高版本),才能使用 SqlFileStream 处理 FILESTREAM 数据。

指定列上的 varbinary(max) FILESTREAM 属性会导致 SQL Server 将数据存储在本地 NTFS 文件系统而不是数据库文件中。 Transact-SQL 语句在服务器中提供数据操作功能,Win32 文件系统接口提供对数据的流访问。

注释

无法直接从 NTFS 文件系统打开存储在 FILESTREAM 列中的各个文件。 流式处理 FILESTREAM 数据仅适用于 SQL Server 事务的上下文。

SqlFileStream 类派生自 Stream 该类,该类表示来自某些任意数据源(如文件或内存块)的字节序列的抽象。 可以通过将数据从流传输到数据结构(如字节数组)来从 FILESTREAM 读取数据。 可以通过将数据从数据结构传输到流来写入 FILESTREAM。 还可以在流中查找,这样就可以在流中的当前位置查询和修改数据。

有关概念文档和代码示例,请参阅 FILESTREAM 数据

构造函数

名称 说明
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64)

初始化 SqlFileStream 类的新实例。

SqlFileStream(String, Byte[], FileAccess)

初始化 SqlFileStream 类的新实例。

属性

名称 说明
CanRead

获取一个值,该值指示当前流是否支持读取。

CanSeek

获取一个值,该值指示当前流是否支持查找。

CanTimeout

获取一个值,该值指示当前流是否可以超时。

CanWrite

获取一个值,该值指示当前流是否支持写入。

Length

获取一个值,该值指示当前流的长度(以字节为单位)。

Name

获取传递给构造函数的 SqlFileStream 逻辑路径。

Position

获取或设置当前流中的位置。

ReadTimeout

获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取的时间。

TransactionContext

获取或设置此 SqlFileStream 对象的事务上下文。

WriteTimeout

获取或设置一个值(以毫秒为单位),该值确定流在超时之前尝试写入的时间。

方法

名称 说明
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

开始异步读取操作。

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

开始异步写入操作。

Close()

关闭当前流并释放与当前流关联的任何资源(如套接字和文件句柄)。 请确保流已正确释放,而不是调用此方法。

(继承自 Stream)
CopyTo(Stream, Int32)

从当前流中读取字节,并使用指定的缓冲区大小将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyTo(Stream)

从当前流中读取字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream, Int32, CancellationToken)

使用指定的缓冲区大小和取消令牌异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream, Int32)

使用指定的缓冲区大小异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream)

从当前流异步读取字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CreateObjRef(Type)

创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。

(继承自 MarshalByRefObject)
CreateWaitHandle()
已过时.
已过时.
已过时.

分配对象 WaitHandle

(继承自 Stream)
Dispose()

释放该 Stream命令使用的所有资源。

(继承自 Stream)
Dispose(Boolean)

释放由托管资源使用 Stream 的非托管资源,并选择性地释放托管资源。

(继承自 Stream)
EndRead(IAsyncResult)

等待挂起的异步读取完成。

EndWrite(IAsyncResult)

结束异步写入操作。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()

确保在垃圾回收器回收 SqlFileStream资源时释放资源,并执行其他清理操作。

Flush()

清除此流的所有缓冲区,并导致任何缓冲数据写入基础设备。

FlushAsync()

异步清除此流的所有缓冲区,并导致任何缓冲数据写入基础设备。

(继承自 Stream)
FlushAsync(CancellationToken)

异步清除此流的所有缓冲区,导致任何缓冲数据写入基础设备,并监视取消请求。

(继承自 Stream)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
ObjectInvariant()
已过时.

提供对 a Contract.

(继承自 Stream)
Read(Byte[], Int32, Int32)

从当前流中读取字节序列,并通过读取的字节数推进流中的位置。

ReadAsync(Byte[], Int32, Int32, CancellationToken)

从当前流异步读取字节序列,按读取的字节数推进流中的位置,并监视取消请求。

(继承自 Stream)
ReadAsync(Byte[], Int32, Int32)

从当前流异步读取字节序列,并通过读取的字节数推进流中的位置。

(继承自 Stream)
ReadByte()

从流中读取字节,并将流中的位置向前推进一个字节,或者在流末尾返回 -1。

Seek(Int64, SeekOrigin)

设置当前流中的位置。

SetLength(Int64)

设置当前流的长度。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
Write(Byte[], Int32, Int32)

将字节序列写入当前流,并通过写入的字节数推进此流中的当前位置。

WriteAsync(Byte[], Int32, Int32, CancellationToken)

将字节序列异步写入当前流,按写入的字节数推进此流中的当前位置,并监视取消请求。

(继承自 Stream)
WriteAsync(Byte[], Int32, Int32)

以异步方式将字节序列写入当前流,并通过写入的字节数推进此流中的当前位置。

(继承自 Stream)
WriteByte(Byte)

将字节写入流中的当前位置,并将流中的位置向前推进一个字节。

适用于

另请参阅