Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Cada provedor de dados do .NET Framework incluído com o .NET Framework tem seu próprio objeto de comando que herda de DbCommand. O Provedor de Dados do .NET Framework para OLE DB inclui um objeto OleDbCommand, o Provedor de Dados do .NET Framework para SQL Server inclui um objeto SqlCommand, o Provedor de Dados do .NET Framework para ODBC inclui um objeto OdbcCommand e o Provedor de Dados do .NET Framework 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
O Provedor de Dados do .NET Framework para SQL Server adiciona contadores de desempenho para permitir que você detete problemas intermitentes relacionados a execuções de comando com falha. Para obter mais informações, consulte Contadores de desempenho .