SqlCommand

Présentation de SqlCommand

SqlCommand permet d’encapsuler les instructions SQL à exécuter. À l’aide d’une connexion base de données établie, il envoie des ordres à la base et récupère les résultats d’exécution.
Le constructeur accepte deux paramètres : texte SQL (cmdText) et objet de connexion base de données (SqlConnection).

Exemple simple

Installez‑vous SQL Server et créez la table Article, puis insérez un enregistrement de test.

private void button1_Click(object sender, EventArgs e)
{
    // 1. Définir la chaîne de connexion
    string connectionString = "User ID=sa;pwd=qweqwe;initial catalog=DB;Data Source=.;";

    // 2. Créer l’objet connexion
    SqlConnection conn = new SqlConnection(connectionString);

    // 3. Définir l’instruction SQL à exécuter
    string cmdText = "SELECT GETDATE(),count(1) FROM [DB].[dbo].[Article]";

    // 4. Créer l’objet commande, associer SQL et connexion
    SqlCommand command = new SqlCommand(cmdText, conn);

    conn.Open();    // Ouvrir la connexion base de données
    // ExecuteScalar() : exécute SQL et renvoie la valeur de la [première ligne, première colonne] en type object

    object res = command.ExecuteScalar();

    MessageBox.Show(res.ToString());

    conn.Close();   // Fermer la connexion
}Langage du code : C# (cs)

Table SQL Server

CREATE TABLE Article(
    id INT PRIMARY KEY IDENTITY(1,1),
    Title NCHAR(10) NULL,
    AddTime NCHAR(10) NULL
);Langage du code : SQL (Structured Query Language) (sql)

Méthode principale : ExecuteScalar()

  • Obtenir des résultats d’agrégation : COUNT(), MAX(), MIN(), SUM()
  • Récupérer une seule valeur, par exemple l’heure courante de la base, l’ID de clé primaire auto‑incrémentée

Remarques :

  1. Le type de retour est object, un cast manuel est nécessaire ;
  2. Si la requête renvoie plusieurs lignes et colonnes, seule la première ligne, première colonne est conservée, les autres données sont ignorées ;
  3. Appelez conn.Open() pour ouvrir la connexion avant exécution.

Bonne pratique d’écriture

Utilisez l’instruction using pour libérer automatiquement les ressources de connexion et éviter les fuites de connexion dues à un oubli de fermeture :

string connectionString = "User ID=sa;pwd=qweqwe;initial catalog=DB;Data Source=.;";
string cmdText = "SELECT GETDATE(),count(1) FROM [DB].[dbo].[Article]";
using (SqlConnection conn = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(cmdText, conn);
    conn.Open();
    object res = command.ExecuteScalar();
    MessageBox.Show(res.ToString());
}
// À la sortie du bloc using, la connexion est libérée automatiquement. Pas besoin d’appeler manuellement conn.Close()Langage du code : JavaScript (javascript)

Compléments

Trois autres méthodes d’exécution sont fréquemment utilisées avec SqlCommand :

  1. ExecuteNonQuery() : exécute INSERT/UPDATE/DELETE, renvoie le nombre de lignes affectées
  2. ExecuteReader() : renvoie un flux DataReader pour lire ligne par ligne plusieurs résultats
  3. ExecuteXmlReader() : lit des données au format XML (peu employé)

Nous aborderons ces usages dans les prochains chapitres.

SqlCommand

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *