Insertion

Opérations d’insertion avec Dapper

  1. Dapper propose la méthode d’extension Execute() pour exécuter des requêtes SQL d’insertion, de mise à jour et de suppression, elle renvoie le nombre de lignes affectées (int).
  2. Méthode d’insertion : écrire manuellement une requête INSERT avec des emplacements de paramètres @NomParamètre ; transmettre un objet entité pour mapper automatiquement les paramètres et éviter les injections SQL.
  3. Syntaxe : INSERT INTO NomTable(Colonne1,Colonne2...) VALUES(@Param1,@Param2...)

Exemple

using System.Data;
using MySql.Data.MySqlClient;
using Dapper;
using System.Configuration;
using System.Collections.Generic;

namespace DapperDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1.Lire la chaîne de connexion
            var connStr = ConfigurationManager.ConnectionStrings["StudentConnection"].ConnectionString;

            // 2.using libère automatiquement la connexion à la base de données
            using (IDbConnection db = new MySqlConnection(connStr))
            {
                // 3.Écrire la requête d’insertion sur la table student
                string sql = @"INSERT INTO student (FirstName, LastName, Email) 
                               VALUES (@FirstName, @LastName, @Email)";

                // 4.Créer l’objet entité
                var stu = new Student()
                {
                    FirstName = "foxdevelop",
                    LastName = "com",
                    Email = "admin@foxdevelop.com"
                };

                // 5.Exécuter l’insertion et récupérer le nombre de lignes modifiées
                int rows = db.Execute(sql, stu);

                // 6.Vérifier les données insérées par une requête
                List<Student> stuList = db.Query<Student>("SELECT * FROM student").ToList();
            }

            Console.ReadKey();
        }
    }

    // Classe entité Student (les noms des propriétés doivent correspondre aux paramètres @ du SQL)
    public class Student
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
    }
}Langage du code : HTML, XML (xml)

Remarques

  1. Règles de mappage des paramètres
    Dapper associe automatiquement les propriétés de l’entité aux paramètres @xxx de la requête SQL. La casse n’est pas prise en compte, mais il est recommandé de conserver des noms identiques.
  2. Valeur de retour de Execute
    int rowsAffected = db.Execute(sql, stu);
  • Valeur retournée ≥1 : insertion réussie ;
  • Valeur retournée 0 : aucune ligne n’a été insérée.
  1. Configuration de la chaîne de connexion (App.config)
<configuration>
  <connectionStrings>
    <add name="StudentConnection" 
         connectionString="server=localhost;database=testdb;uid=root;pwd=123456" 
         providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
</configuration>Langage du code : HTML, XML (xml)

Récupérer l’ID de clé primaire auto‑incrémentée (MySQL)

Si la table student possède une clé primaire auto‑incrémentée Id, récupérez l’identifiant de l’enregistrement nouvellement créé :

string sql = @"INSERT INTO student (FirstName, LastName, Email) 
               VALUES (@FirstName, @LastName, @Email);
               SELECT LAST_INSERT_ID();";

long newStudentId = db.ExecuteScalar<long>(sql, stu);Langage du code : HTML, XML (xml)

Insertion

Laisser un commentaire

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