Condividi tramite


Esecuzione di un comando

Una volta stabilita una connessione a un'origine dati, è possibile eseguire i comandi e restituire i risultati dell'origine dati utilizzando un oggetto Command. È possibile creare un comando con il costruttore Command che accetta argomenti facoltativi di un'istruzione SQL da eseguire nell'origine dati, un oggetto Connection e un oggetto Transaction. È possibile inoltre creare un comando per un particolare oggetto Connection utilizzando il metodo CreateCommand dell'oggetto Connection. L'istruzione SQL dell'oggetto Command può essere richiesta e modificata utilizzando la proprietà CommandText.

L'oggetto Command espone diversi metodi Execute che possono essere utilizzati per eseguire l'operazione desiderata. Quando si restituiscono risultati come un flusso di dati, utilizzare ExecuteReader per restituire un oggetto DataReader. Utilizzare ExecuteScalar per restituire un valore Singleton. Utilizzare ExecuteNonQuery per eseguire comandi che non restituiscono righe.

Quando si utilizza l'oggetto Command con una stored procedure, è possibile impostare la proprietà CommandType dell'oggetto Command su StoredProcedure. Con una proprietà CommandType impostata su StoredProcedure, è possibile utilizzare la proprietà Parameters dell'oggetto Command per accedere ai parametri di input e di output e ai valori restituiti. È possibile accedere alla proprietà Parameters a prescindere dal metodo Execute chiamato. Tuttavia, quando si chiama ExecuteReader, non è possibile accedere ai valori restituiti e ai parametri di output fino a quando DataReader non viene chiuso.

Nel codice di esempio seguente viene illustrato come formattare un oggetto Command in modo da restituire un elenco di Categories del database Northwind.

SqlClient

Dim catCMD As SqlCommand = New SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
[C#]
SqlCommand catCMD = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

OleDb

Dim catCMD As OleDbCommand = New OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
[C#]
OleDbCommand catCMD = new OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

Contatori prestazioni per i comandi

Con il provider di dati .NET Framework per SQL Server viene aggiunto un contatore delle prestazioni per consentire il rilevamento di problemi intermittenti legati a comandi non eseguiti correttamente. È possibile accedere al contatore "SqlClient: numero totale di comandi non riusciti" nel Performance Monitor nell'oggetto prestazioni Dati CLR .NET per determinare il numero totale di esecuzioni di comandi che per qualche motivo non sono riuscite.

Nota   Quando si utilizzano i contatori delle prestazioni per il provider di dati .NET Framework per SQL Server con le applicazioni ASP.NET, sarà disponibile solo l'istanza _Global. Il valore restituito dal contatore delle prestazioni corrisponderà pertanto alla somma dei valori dei contatori delle diverse applicazioni ASP.NET.

Vedere anche

Utilizzo di provider di dati .NET Framework per accedere ai dati | Utilizzo di stored procedure con un comando | Recupero di dati mediante DataReader | Recupero di un singolo valore da un database | Esecuzione di operazioni nel database e modifica di dati | Classe OleDbCommand | Classe OleDbDataReader | Classe SqlCommand | Classe SqlDataReader