CommandBehavior Перечисление

Определение

Содержит описание результатов запроса и его влияние на базу данных.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
Наследование
CommandBehavior
Атрибуты

Поля

Имя Значение Описание
Default 0

Запрос может возвращать несколько результирующих наборов. Выполнение запроса может повлиять на состояние базы данных. Default CommandBehavior не задает флаги, поэтому вызов ExecuteReader(CommandBehavior.Default) функционально эквивалентен вызовуExecuteReader().

SingleResult 1

Запрос возвращает один результирующий набор.

SchemaOnly 2

Запрос возвращает только сведения о столбце. При использовании SchemaOnly .NET Framework Data Provider для SQL Server предшествует выполнению инструкции с параметром SET FMTONLY ON.

KeyInfo 4

Запрос возвращает сведения о столбце и первичном ключе. Поставщик добавляет дополнительные столбцы к результирующему набору для существующих столбцов первичного ключа и метки времени.

SingleRow 8

Ожидается, что запрос возвращает одну строку первого результирующий набор. Выполнение запроса может повлиять на состояние базы данных. Некоторые .NET поставщики данных могут, но не требуются, используйте эти сведения для оптимизации производительности команды. При указании SingleRow с помощью метода ExecuteReader() объекта OleDbCommand платформа .NET Data Provider Framework для OLE DB выполняет привязку с помощью интерфейса OLE DB IRow, если он доступен. В противном случае он использует IRowset интерфейс. Если инструкция SQL, как ожидается, возвращает только одну строку, указание SingleRow также может повысить производительность приложения. При выполнении запросов, которые, как ожидается, возвращают несколько результирующих наборов, можно указать SingleRow . В этом случае при указании SQL-запроса с несколькими результирующих наборами и одной строкой результат будет содержать только первую строку первого результирующий набора. Другие результирующие наборы запроса не будут возвращены.

SequentialAccess 16

Предоставляет способ DataReader обработки строк, содержащих столбцы с большими двоичными значениями. Вместо загрузки всей строки SequentialAccess позволяет DataReader загружать данные в виде потока. Затем можно использовать GetBytes метод или GetChars метод, чтобы указать расположение байтов для запуска операции чтения, а также ограниченный размер буфера для возвращаемых данных.

CloseConnection 32

При выполнении команды связанный Connection объект закрывается при закрытии связанного DataReader объекта.

Комментарии

Значения CommandBehavior используются методом ExecuteReader объекта IDbCommand и любыми реализующими классами.

Может использоваться побитовое сочетание этих значений.

CommandBehavior игнорируется при использовании для определения SqlNotificationRequest или SqlDependency , следовательно, не следует использовать. Используйте конструктор, который не требует CommandBehavior параметра в этих двух случаях.

Заметки о отдельных элементах перечисления

При использовании KeyInfo поставщик данных .NET Framework для SQL Server добавляет к выполняемой инструкции префикс с SET FMTONLY OFF и SET NO_BROWSETABLE ON. Пользователи должны знать о потенциальных побочных эффектах, таких как вмешательство в использование инструкций SET FMTONLY ON . Дополнительные сведения см. в разделе SET FMTONLY (Transact-SQL).

Note

Используется SequentialAccess для получения больших значений и двоичных данных. В противном случае может произойти ошибка OutOfMemoryException, и соединение будет закрыто.

При указании SequentialAccess вы обязаны прочитывать из столбцов в том порядке, в котором они возвращаются, хотя читать каждый столбец не обязательно. После того как вы прошли мимо местоположения в возвращаемом потоке данных, данные на этом или предыдущем местоположении больше не могут быть считаны из DataReader. При использовании OleDbDataReader можно перечитывать текущее значение столбца, пока его не пройдёте. При использовании значения столбца SqlDataReaderможно считывать только один раз.

Применяется к