Idioma
Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Cada fornecedor de dados ADO.NET tem o seu próprio objeto de comando que herda de DbCommand. O .NET Framework Data Provider para OLE DB inclui um objeto OleDbCommand, Microsoft.Data.SqlClient inclui um objeto SqlCommand, o .NET Framework Data Provider para ODBC inclui um objeto OdbcCommand, e o .NET Framework Data Provider para Oracle inclui um objeto OracleCommand. Cada um desses objetos expõe métodos para executar comandos com base no tipo de comando e no valor de retorno desejado, conforme descrito na tabela a seguir.
| Comando | Valor de retorno |
|---|---|
ExecuteReader |
Retorna um objeto DataReader. |
ExecuteScalar |
Retorna um único valor escalar. |
ExecuteNonQuery |
Executa um comando que não retorna nenhuma linha. |
ExecuteXMLReader |
Retorna um XmlReader. Disponível apenas para um objeto SqlCommand. |
Cada objeto de comando fortemente tipado também oferece suporte a uma enumeração CommandType que especifica como uma cadeia de caracteres de comando é interpretada, conforme descrito na tabela a seguir.
| Tipo de comando | Descrição |
|---|---|
Text |
Um comando SQL que define as instruções a serem executadas na fonte de dados. |
StoredProcedure |
O nome do procedimento armazenado. Você pode usar a propriedade Parameters de um comando para acessar parâmetros de entrada e saída e valores de retorno, independentemente de qual método Execute é chamado. Ao usar ExecuteReader, os valores de retorno e os parâmetros de saída não estarão acessíveis até que o DataReader seja fechado. |
TableDirect |
O nome de uma tabela. |
Exemplo
O exemplo de código a seguir demonstra como criar um objeto SqlCommand para executar um procedimento armazenado definindo suas propriedades. Um objeto SqlParameter é usado para especificar o parâmetro de entrada para o procedimento armazenado. O comando é executado usando o método ExecuteReader e a saída do SqlDataReader é exibida na janela do 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
Comandos de solução de problemas
Microsoft.Data.SqlClient expõe contadores de desempenho do Windows no .NET Framework e EventCounters no .NET moderno. Para mais informações, consulte Contadores de Desempenho.