CommandBehavior Enumerazione

Definizione

Fornisce una descrizione dei risultati della query e dei relativi effetti 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

CloseConnection 32

Durante l'esecuzione del comando, l'oggetto Connection associato viene chiuso alla chiusura dell'oggetto DataReader associato.

Default 0

È possibile che la query restituisca più set di risultati. L'esecuzione della query può influire sullo stato del database. Default non imposta flag CommandBehavior, quindi chiamare ExecuteReader(CommandBehavior.Default) equivale dal punto di vista funzionale a chiamare ExecuteReader().

KeyInfo 4

La query restituisce informazioni sulle colonne e sulle chiavi primarie. Il provider accoda colonne aggiuntive al set di risultati per la chiave primaria esistente e le colonne timestamp.

SchemaOnly 2

La query restituisce solo le informazioni sulla colonna. Se si utilizza il campo SchemaOnly, il provider di dati .NET Framework Data per SQL Server precede l'istruzione in fase di esecuzione con SET FMTONLY ON.

SequentialAccess 16

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

SingleResult 1

La query restituisce un singolo set di risultati.

SingleRow 8

È previsto che la query restituisca una singola riga del primo set di risultati. L'esecuzione della query può influire sullo stato del database. È possibile, ma non necessario, che alcuni provider di dati .NET usino queste informazioni per ottimizzare le prestazioni del comando. Quando si specifica SingleRow con il metodo ExecuteReader() dell'oggetto OleDbCommand, il provider di dati .NET Framework di OLE DB esegue l'associazione mediante l'interfaccia IRow OLE DB, se disponibile. In caso contrario, utilizza l'interfaccia IRowset. Se si prevede che l'istruzione SQL restituisca solo una singola riga, è possibile specificare SingleRow per migliorare le prestazioni dell'applicazione. È possibile specificare SingleRow quando si eseguono query che devono restituire più set di risultati. In tal caso, dove vengono specificate sia una query SQL con più set di risultati sia 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.

Commenti

I CommandBehavior valori vengono utilizzati dal ExecuteReader metodo di IDbCommand e da qualsiasi classe 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 dell'enumerazione

Quando si usa KeyInfo, il .NET Framework provider di dati per SQL Server precede l'istruzione eseguita con SET FMTONLY OFF e SET NO_BROWSETABLE ON. L'utente deve essere a conoscenza di potenziali effetti collaterali, ad esempio l'interferenza con l'uso di SET FMTONLY ON istruzioni. Per altre informazioni, vedere SET FMTONLY (Transact-SQL).

Nota

Usare SequentialAccess per recuperare valori di grandi dimensioni e dati binari. In caso contrario, potrebbe verificarsi un oggetto 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 una posizione nel flusso di dati restituito, 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