CommandBehavior Enumerazione

Definizione

Fornisce una descrizione dei risultati della query e del relativo effetto sul database.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
Ereditarietà
CommandBehavior
Attributi

Campi

Nome Valore Descrizione
Default 0

La query può restituire più set di risultati. L'esecuzione della query può influire sullo stato del database. Default CommandBehavior non imposta alcun flag, quindi la chiamata ExecuteReader(CommandBehavior.Default) è funzionalmente equivalente alla chiamata ExecuteReader()a .

SingleResult 1

La query restituisce un singolo set di risultati.

SchemaOnly 2

La query restituisce solo informazioni sulla colonna. Quando si usa SchemaOnly, provider di dati framework di .NET per SQL Server precede l'istruzione eseguita con SET FMTONLY ON.

KeyInfo 4

La query restituisce informazioni sulla colonna e sulla chiave primaria. Il provider aggiunge colonne aggiuntive al set di risultati per le colonne di chiave primaria e timestamp esistenti.

SingleRow 8

Si prevede che la query restituisca una singola riga del primo set di risultati. L'esecuzione della query può influire sullo stato del database. Alcuni provider di dati .NET possono, ma non sono necessari, usare queste informazioni per ottimizzare le prestazioni del comando. Quando si specifica SingleRow con il metodo ExecuteReader() dell'oggetto OleDbCommand, il provider di dati framework di .NET per OLE DB esegue l'associazione utilizzando l'interfaccia OLE DB IRow, se disponibile. In caso contrario, usa l'interfaccia IRowset . Se si prevede che l'istruzione SQL restituisca una sola riga, specificando SingleRow può anche migliorare le prestazioni dell'applicazione. È possibile specificare SingleRow quando si eseguono query che devono restituire più set di risultati. In tal caso, in cui vengono specificate sia una query SQL del set di risultati con più risultati che una singola riga, il risultato restituito conterrà solo la prima riga del primo set di risultati. Gli altri set di risultati della query non verranno restituiti.

SequentialAccess 16

Consente all'oggetto DataReader di gestire le righe contenenti colonne con valori binari di grandi dimensioni. Anziché caricare l'intera riga, SequentialAccess consente a di DataReader caricare i dati come flusso. È quindi possibile usare il GetBytes metodo o GetChars per specificare un percorso di byte per avviare l'operazione di lettura e una dimensione del buffer limitata per i dati restituiti.

CloseConnection 32

Quando viene eseguito il comando, l'oggetto associato viene chiuso quando l'oggetto associato ConnectionDataReader viene chiuso.

Commenti

I CommandBehavior valori vengono utilizzati dal ExecuteReader metodo di IDbCommand ed eventuali classi di implementazione.

È possibile usare una combinazione bit per bit di questi valori.

CommandBehavior viene ignorato quando viene usato per definire un SqlNotificationRequest oggetto o SqlDependency e pertanto non deve essere utilizzato. Usare il costruttore che non richiede un CommandBehavior parametro in questi due casi.

Note sui singoli membri di enumerazione

Quando si usa KeyInfo, il provider di dati .NET Framework per SQL Server precede l'istruzione eseguita con SET FMTONLY OFF e SET NO_BROWSETABLE ON. Gli utenti devono essere consapevoli dei potenziali effetti collaterali, ad esempio l'interferenza nell'uso di SET FMTONLY ON dichiarazioni. Per altre informazioni, vedere SET FMTONLY (Transact-SQL).

Note

Usare SequentialAccess per recuperare valori di grandi dimensioni e dati binari. In caso contrario, potrebbe verificarsi un OutOfMemoryException e la connessione verrà chiusa.

Quando si specifica SequentialAccess, è necessario leggere dalle colonne nell'ordine in cui vengono restituiti, anche se non è necessario leggere ogni colonna. Dopo aver letto oltre una posizione nel flusso restituito di dati, i dati in corrispondenza o prima di tale posizione non possono più essere letti da DataReader. Quando si usa OleDbDataReader, è possibile rileggere il valore della colonna corrente fino a quando non viene letto oltre. Quando si usa SqlDataReader, è possibile leggere un valore di colonna una sola volta.

Si applica a