温故知新--CommandBehavior 枚举

本文介绍了System.Data命名空间下的CommandBehavior枚举类型,解释了不同成员如Default、SingleResult、SchemaOnly、KeyInfo、SingleRow、SequentialAccess和CloseConnection对数据库查询结果及执行方式的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

此枚举有一个 FlagsAttribute 特性,通过该特性可使其成员值按位组合。

命名空间:  System.Data
程序集:  System.Data(在 System.Data.dll 中)

成员

Default:

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

<//www.w3.org/1999/xhtml:sentencetext xmlns="http://www.w3.org/1999/xhtml"> 

SingleResult:

查询返回一个结果集。

<//www.w3.org/1999/xhtml:sentencetext xmlns="http://www.w3.org/1999/xhtml"> 

SchemaOnly:

查询仅返回列信息。当使用 SchemaOnly 时,用于 SQL Server 的 .NET Framework 数据提供程序将在要执行的语句前加上 SET FMTONLY ON。

<//www.w3.org/1999/xhtml:sentencetext xmlns="http://www.w3.org/1999/xhtml"> 

KeyInfo:

此查询返回列和主键信息

KeyInfo 用于命令执行时,提供程序将为现有主键列和时间戳列的结果集附加额外的列。

当使用 KeyInfo 时,用于 SQL Server 的 .NET Framework 数据提供程序将在要执行的语句前加上 SET FMTONLY OFF 和 SET NO_BROWSETABLE ON。用户应该注意潜在的副作用,例如对 SET FMTONLY ON 语句的使用产生的干扰。有关更多信息,请参见“SQL Server 联机丛书”。

<//www.w3.org/1999/xhtml:sentencetext xmlns="http://www.w3.org/1999/xhtml"> 

SingleRow:

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

 

SequentialAccess:

提供一种方法,以便 DataReader 处理包含带有大二进制值的列的行。 SequentialAccess 不是加载整行,而是使 DataReader 将数据作为流来加载。然后可以使用 GetBytesGetChars 方法来指定开始读取操作的字节位置以及正在返回的数据的有限的缓冲区大小。

当指定 SequentialAccess 时,尽管无需读取每个列,但是需要按照列的返回顺序读取它们。一旦已经读过返回的数据流中某个位置的内容,就不能再从 DataReader 中读取该位置或该位置之前的数据。当使用 OleDbDataReader 时,可重新读取当前列的值,直到读过它。在使用 SqlDataReader时,可以一次只读取列值。

<//www.w3.org/1999/xhtml:sentencetext xmlns="http://www.w3.org/1999/xhtml"> 

CloseConnection:

在执行该命令时,如果关闭关联的 DataReader 对象,则关联的 Connection 对象也将关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值