CommandBehavior 枚举

定义

提供查询结果及其对数据库的影响的说明。

此枚举支持其成员值的按位组合。

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
继承
CommandBehavior
属性

字段

名称 说明
Default 0

查询可能会返回多个结果集。 执行查询可能会影响数据库状态。 DefaultCommandBehavior 设置任何标志,因此调用 ExecuteReader(CommandBehavior.Default) 在功能上等同于调用 ExecuteReader()

SingleResult 1

查询返回单个结果集。

SchemaOnly 2

查询仅返回列信息。 使用 SchemaOnly 时,SQL Server的 .NET Framework Data Provider位于使用 SET FMTONLY ON 执行的语句之前。

KeyInfo 4

查询返回列和主键信息。 提供程序将额外列追加到现有主键和时间戳列的结果集中。

SingleRow 8

查询应返回第一个结果集的单个行。 执行查询可能会影响数据库状态。 某些.NET数据提供程序可能(但不需要)使用此信息来优化命令的性能。 使用 SingleRow 对象的 ExecuteReader() 方法指定 OleDbCommand 时,OLE DB 的 .NET Framework Data Provider使用 OLE DB IRow 接口执行绑定(如果可用)。 否则,它使用 IRowset 接口。 如果 SQL 语句只返回一行,则 SingleRow 指定还可以提高应用程序性能。 可以指定 SingleRow 何时执行预期返回多个结果集的查询。 在这种情况下,如果同时指定了多结果集 SQL 查询和单个行,则返回的结果将仅包含第一个结果集的第一行。 不会返回查询的其他结果集。

SequentialAccess 16

提供一种处理 DataReader 包含具有大型二进制值的列的行的方法。 允许SequentialAccess将数据作为流加载,DataReader而不是加载整个行。 然后, GetBytes 可以使用或 GetChars 方法指定要启动读取操作的字节位置,以及所返回数据的缓冲区大小有限。

CloseConnection 32

执行命令时,关联 Connection 对象在关闭关联 DataReader 对象时关闭。

注解

这些 CommandBehavior 值被 ExecuteReader 及其任何实现类的 IDbCommand 方法使用。

可以使用这些值的按位组合。

CommandBehavior 在定义 SqlNotificationRequestSqlDependency 时将被忽略,因此不应使用。 使用这两种情况下不需要 CommandBehavior 参数的构造函数。

有关单个枚举成员的说明

使用 KeyInfo 时,用于 SQL Server 的 .NET Framework 数据提供程序会在执行语句前添加 SET FMTONLY OFFSET NO_BROWSETABLE ON。 用户应注意潜在的副作用,例如影响对 SET FMTONLY ON 语句的使用。 有关详细信息,请参阅 SET FMTONLY (Transact-SQL)。

注释

使用 SequentialAccess 检索大值和二进制数据。 否则,可能会发生 OutOfMemoryException,并且连接将关闭。

指定 SequentialAccess时,需要按照返回列的顺序从列读取,但不需要读取每个列。 在返回的数据流中读过某个位置后,该位置或之前的数据将无法再从该 DataReader位置读取。 使用 OleDbDataReader 时,可以重新读取当前列值,直到读过值为止。 使用 SqlDataReader时,只能读取列值一次。

适用于