CommandBehavior Enumeración

Definición

Proporciona una descripción de los resultados de la consulta y su efecto en la base de datos.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
Herencia
CommandBehavior
Atributos

Campos

Nombre Valor Description
Default 0

La consulta puede devolver varios conjuntos de resultados. La ejecución de la consulta puede afectar al estado de la base de datos. Default no establece marcas CommandBehavior , por lo que llamar a ExecuteReader(CommandBehavior.Default) es funcionalmente equivalente a llamar a ExecuteReader().

SingleResult 1

La consulta devuelve un único conjunto de resultados.

SchemaOnly 2

La consulta devuelve solo información de columna. Al usar SchemaOnly, el Proveedor de datos de .NET Framework para SQL Server precede a la instrucción que se ejecuta con SET FMTONLY ON.

KeyInfo 4

La consulta devuelve información de columna y clave principal. El proveedor anexa columnas adicionales al conjunto de resultados para las columnas de clave principal y marca de tiempo existentes.

SingleRow 8

Se espera que la consulta devuelva una sola fila del primer conjunto de resultados. La ejecución de la consulta puede afectar al estado de la base de datos. Algunos .NET proveedores de datos pueden, pero no son necesarios, usar esta información para optimizar el rendimiento del comando. Al especificar SingleRow con el método ExecuteReader() del objeto OleDbCommand, .NET Framework Proveedor de datos para OLE DB realiza el enlace mediante la interfaz IRow OLE DB si está disponible. De lo contrario, usa la IRowset interfaz . Si se espera que la instrucción SQL devuelva solo una sola fila, especificar SingleRow también puede mejorar el rendimiento de la aplicación. Es posible especificar SingleRow al ejecutar consultas que se espera que devuelvan varios conjuntos de resultados. En ese caso, cuando se especifica una consulta SQL de conjunto de varios resultados y una sola fila, el resultado devuelto contendrá solo la primera fila del primer conjunto de resultados. No se devolverán los demás conjuntos de resultados de la consulta.

SequentialAccess 16

Proporciona una manera de DataReader controlar las filas que contienen columnas con valores binarios grandes. En lugar de cargar toda la fila, SequentialAccess permite DataReader cargar datos como una secuencia. A continuación, puede usar el GetBytes método o GetChars para especificar una ubicación de bytes para iniciar la operación de lectura y un tamaño de búfer limitado para los datos que se devuelven.

CloseConnection 32

Cuando se ejecuta el comando, el objeto asociado Connection se cierra cuando se cierra el objeto asociado DataReader .

Comentarios

Los valores CommandBehavior se usan mediante el método ExecuteReader de IDbCommand y cualquier clase de implementación.

Se puede usar una combinación bit a bit de estos valores.

CommandBehavior se ignora cuando se utiliza para definir un SqlNotificationRequest o SqlDependency y, por lo tanto, no se debe usar. Use el constructor que no requiere un CommandBehavior parámetro en estos dos casos.

Notas sobre los miembros individuales de enumeración

Cuando se usa KeyInfo, el proveedor de datos de .NET Framework para SQL Server precede a la instrucción que se ejecuta con SET FMTONLY OFF y SET NO_BROWSETABLE ON. Los usuarios deben tener en cuenta los posibles efectos secundarios, como la interferencia con el uso de instrucciones SET FMTONLY ON. Para obtener más información, vea SET FMTONLY (Transact-SQL).

Note

Use SequentialAccess para recuperar valores grandes y datos binarios. De lo contrario, podría producirse un OutOfMemoryException y se cerrará la conexión.

Al especificar SequentialAccess, se requiere que lea las columnas en el orden en que se devuelven, aunque no está obligado a leer cada columna. Una vez que haya leído más allá de una ubicación en el flujo de datos devuelto, los datos en o antes de esa ubicación ya no se pueden leer desde DataReader. Al usar OleDbDataReader, puede volver a leer el valor de la columna actual hasta leerlo más allá. Al usar SqlDataReader, puede leer un valor de columna solo una vez.

Se aplica a