Lingua
Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ogni provider di dati ADO.NET ha un proprio oggetto comando che eredita da DbCommand. Il provider di dati framework di .NET per OLE DB include un OleDbCommand oggetto, Microsoft.Data.SqlClient include un SqlCommand oggetto, il provider di dati framework di .NET per ODBC include un OdbcCommand oggetto e il provider di dati framework di .NET per Oracle include un OracleCommand oggetto. Ognuno di questi oggetti espone metodi per l'esecuzione di comandi in base al tipo di comando e al valore restituito desiderato, come descritto nella tabella seguente.
| Comando | Valore restituito |
|---|---|
ExecuteReader |
Restituisce un oggetto DataReader. |
ExecuteScalar |
Restituisce un singolo valore scalare. |
ExecuteNonQuery |
Esegue un comando che non restituisce righe. |
ExecuteXMLReader |
Restituisce un oggetto XmlReader. Disponibile solo per un SqlCommand oggetto. |
Ogni oggetto comando fortemente tipizzato supporta anche un'enumerazione CommandType che specifica come viene interpretata una stringa di comando, come descritto nella tabella seguente.
| TipoComando | Descrizione |
|---|---|
Text |
Comando SQL che definisce le istruzioni da eseguire nell'origine dati. |
StoredProcedure |
Nome della stored procedure. È possibile utilizzare la Parameters proprietà di un comando per accedere ai parametri di input e output e ai valori restituiti, indipendentemente dal Execute metodo chiamato. Quando si usa ExecuteReader, i valori restituiti e i parametri di output non saranno accessibili fino alla chiusura di DataReader . |
TableDirect |
Nome di una tabella. |
Esempio
Nell'esempio di codice seguente viene illustrato come creare un SqlCommand oggetto per eseguire una stored procedure impostandone le proprietà. Un SqlParameter oggetto viene utilizzato per specificare il parametro di input per la stored procedure. Il comando viene eseguito usando il ExecuteReader metodo e l'output di SqlDataReader viene visualizzato nella finestra della console.
static void GetSalesByCategory(string connectionString,
string categoryName)
{
using (SqlConnection connection = new(connectionString))
{
// Create the command and set its properties.
SqlCommand command = new()
{
Connection = connection,
CommandText = "SalesByCategory",
CommandType = CommandType.StoredProcedure
};
// Add the input parameter and set its properties.
SqlParameter parameter = new()
{
ParameterName = "@CategoryName",
SqlDbType = SqlDbType.NVarChar,
Direction = ParameterDirection.Input,
Value = categoryName
};
// Add the parameter to the Parameters collection.
command.Parameters.Add(parameter);
// Open the connection and execute the reader.
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine($"{reader[0]}: {reader[1]:C}");
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
}
}
}
Shared Sub GetSalesByCategory(ByVal connectionString As String, _
ByVal categoryName As String)
Using connection As New SqlConnection(connectionString)
' Create the command and set its properties.
Dim command As SqlCommand = New SqlCommand()
command.Connection = connection
command.CommandText = "SalesByCategory"
command.CommandType = CommandType.StoredProcedure
' Add the input parameter and set its properties.
Dim parameter As New SqlParameter()
parameter.ParameterName = "@CategoryName"
parameter.SqlDbType = SqlDbType.NVarChar
parameter.Direction = ParameterDirection.Input
parameter.Value = categoryName
' Add the parameter to the Parameters collection.
command.Parameters.Add(parameter)
' Open the connection and execute the reader.
connection.Open()
Using reader As SqlDataReader = command.ExecuteReader()
If reader.HasRows Then
Do While reader.Read()
Console.WriteLine("{0}: {1:C}", _
reader(0), reader(1))
Loop
Else
Console.WriteLine("No rows returned.")
End If
End Using
End Using
End Sub
Risoluzione dei problemi relativi ai comandi
Microsoft.Data.SqlClient espone i contatori delle prestazioni di Windows in .NET Framework ed EventCounters in .NET moderni. Per altre informazioni, vedere i contatori delle prestazioni.