Cette documentation est archivée et n’est pas conservée.

SqlCommand, classe

Représente une instruction Transact-SQL ou une procédure stockée à exécuter par rapport à une base de données SQL Server. Cette classe ne peut pas être héritée.

Espace de noms : System.Data.SqlClient
Assembly : System.Data (dans system.data.dll)

public sealed class SqlCommand : DbCommand, ICloneable
public final class SqlCommand extends DbCommand implements ICloneable
public final class SqlCommand extends DbCommand implements ICloneable

Lorsqu'une instance de SqlCommand est créée, les propriétés de lecture/écriture prennent leurs valeurs initiales. Pour obtenir la liste de ces valeurs, consultez le constructeur SqlCommand.

SqlCommand met en œuvre les méthodes suivantes pour l'exécution de commandes au niveau d'une base de données SQL Server :

Élément

Description

BeginExecuteNonQuery

Lance l'exécution asynchrone de l'instruction Transact-SQL ou de la procédure stockée qui est décrite par cet SqlCommand, en exécutant généralement des commandes, telles que des instructions INSERT, DELETE, UPDATE et SET. Chaque appel à BeginExecuteNonQuery doit être associé à un appel à EndExecuteNonQuery, ce qui termine l'opération, normalement sur un thread séparé.

BeginExecuteReader

Lance l'exécution asynchrone de l'instruction Transact-SQL ou de la procédure stockée qui est décrite par cet SqlCommand et récupère un ou plusieurs jeux de résultats du serveur. Chaque appel à BeginExecuteReader doit être associé à un appel à EndExecuteReader, ce qui termine l'opération, normalement sur un thread séparé.

BeginExecuteXmlReader

Lance l'exécution asynchrone de l'instruction Transact-SQL ou de la procédure stockée qui est décrite par cet SqlCommand. Chaque appel à BeginExecuteXmlReader doit être associé à un appel à EndExecuteXmlReader, ce qui termine l'opération, normalement sur un thread séparé, puis retourne un objet XmlReader.

ExecuteReader

Exécute des commandes qui retournent des lignes. Afin d'améliorer les performances, ExecuteReader appelle des commandes à l'aide de la procédure stockée système Transact-SQL sp_executesql. Par conséquent, il se peut que ExecuteReader n'ait pas l'effet souhaité s'il est utilisé pour exécuter des commandes, telles que des instructions Transact-SQL SET.

ExecuteNonQuery

Exécute des commandes, telles que des instructions Transact-SQL INSERT, DELETE, UPDATE et SET.

ExecuteScalar

Récupère une valeur unique (par exemple, une valeur d'agrégation) d'une base de données.

ExecuteXmlReader

Envoie CommandText à Connection et génère un objet XmlReader.

Vous pouvez réinitialiser la propriété CommandText et réutiliser l'objet SqlCommand. Cependant, vous devez fermer le SqlDataReader avant d'exécuter une commande nouvelle ou précédente.

En cas de génération de SqlException par la méthode exécutant SqlCommand, SqlConnection reste ouvert lorsque le niveau de gravité est inférieur ou égal à 19. Lorsque le niveau de gravité est supérieur ou égal à 20, le serveur ferme normalement SqlConnection. L'utilisateur peut toutefois rouvrir la connexion et continuer.

RubriqueEmplacement
Procédure pas à pas : affichage de données hiérarchiques dans un contrôle TreeViewGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : affichage de données hiérarchiques dans un contrôle TreeViewGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : affichage de données hiérarchiques dans un contrôle TreeViewGénération d'applications Web ASP.NET dans Visual Studio

L'exemple suivant crée un SqlConnection, un SqlCommand et SqlDataReader. L'exemple lit les données, en les affichant dans la console. Pour terminer, l'exemple ferme SqlDataReader, puis SqlConnection.

private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }
}

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbCommand
        System.Data.SqlClient.SqlCommand

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Afficher: