Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cada provedor de dados do .NET Framework incluído no .NET Framework possui seu próprio objeto de comando que herda de DbCommand. O Provedor de Dados do .NET Framework para OLE DB inclui um OleDbCommand objeto, o Provedor de Dados do .NET Framework para SQL Server inclui um SqlCommand objeto, o Provedor de Dados do .NET Framework para ODBC inclui um OdbcCommand objeto e o Provedor de Dados do .NET Framework para Oracle inclui um OracleCommand objeto. 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 somente para um objeto do SqlCommand. |
Cada objeto de comando fortemente tipado também dá suporte a uma enumeração de CommandType que especifica como uma cadeia de caracteres de comando é interpretada, conforme descrito na tabela a seguir.
| TipoComando | 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 os parâmetros de entrada e saída e os valores de retorno, independentemente do 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 código de exemplo 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 para solução de problemas
O Provedor de Dados do .NET Framework para SQL Server adiciona contadores de desempenho para permitir que você detecte problemas intermitentes relacionados a execuções de comando com falha. Para obter mais informações, consulte Contadores de Desempenho.