Partager via


Exécution d’une commande

S'applique à : .NET Framework .NET .NET Standard

Télécharger ADO.NET

Le Fournisseur de données Microsoft SqlClient pour SQL Server a le projet SqlCommand qui hérite de DbCommand. Cet objet expose des méthodes pour exécuter des commandes en fonction du type de commande et de la valeur de retour souhaitée, comme décrit dans le tableau suivant.

Commande Valeur renvoyée
ExecuteReader Retourne un objet DataReader.
ExecuteScalar Retourne une valeur scalaire unique.
ExecuteNonQuery Exécute une commande qui ne retourne aucune ligne.
ExecuteXMLReader Retourne un XmlReader. Disponible pour un objet SqlCommand uniquement.

Chaque objet de commande fortement typé prend également en charge une énumération CommandType qui spécifie la manière dont une chaîne de commande est interprétée, comme cela est décrit dans le tableau ci-dessous.

CommandType Description
Text Commande SQL qui définit les instructions à exécuter au niveau de la source de données.
StoredProcedure Nom de la procédure stockée. Vous pouvez utiliser la propriété Parameters d'une commande pour accéder aux paramètres d'entrée et de sortie et aux valeurs de retour, quelle que soit la méthode Execute appelée.
TableDirect Nom d'une table.

Important

Lorsque vous utilisez ExecuteReader, les valeurs de retour et les paramètres de sortie ne seront pas accessibles tant que DataReader ne sera pas fermé.

Exemple

L'exemple de code ci-dessous montre comment créer un objet SqlCommand pour exécuter une procédure stockée en définissant ses propriétés. Un objet SqlParameter permet de spécifier le paramètre d'entrée de la procédure stockée. La commande est exécutée à l'aide de la méthode ExecuteReader et la sortie de SqlDataReader est affichée dans la fenêtre de console.

static void GetSalesByCategory(string connectionString,
    string categoryName)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        // Create the command and set its properties.
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandText = "SalesByCategory";
        command.CommandType = CommandType.StoredProcedure;

        // Add the input parameter and set its properties.
        SqlParameter parameter = 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 (SqlDataReader reader = command.ExecuteReader())
        {
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Console.WriteLine("{0}: {1:C}", reader[0], reader[1]);
                }
            }
            else
            {
                Console.WriteLine("No rows found.");
            }
            reader.Close();
        }
    }
}

Commandes de dépannage

Le fournisseur de données Microsoft SqlClient pour SQL Server ajoute des compteurs de diagnostic pour vous permettre de détecter les problèmes intermittents liés aux exécutions de commandes qui ont échoué. Pour plus d’informations, consultez Compteurs de diagnostic dans SqlClient.

Voir aussi