Einfügen

Dapper Einfüge‑Operationen

  1. Dapper stellt die Erweiterungsmethode Execute() zur Ausführung von INSERT‑, UPDATE‑ und DELETE‑SQL‑Anweisungen bereit, sie gibt die Anzahl der betroffenen Zeilen als int zurück.
  2. Vorgehensweise beim Einfügen: Schreiben Sie eine handgeschriebene INSERT‑SQL mit Parameter‑Platzhaltern @Parametername. Übergeben Sie ein Entity‑Objekt für die automatische Parameterzuordnung, um SQL‑Injektionen zu verhindern.
  3. Syntax: INSERT INTO Tabellenname(Spalte1,Spalte2...) VALUES(@Param1,@Param2...)

Beispiel

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.Verbindungszeichenfolge einlesen
            var connStr = ConfigurationManager.ConnectionStrings["StudentConnection"].ConnectionString;

            // 2.using gibt die Datenbankverbindung automatisch frei
            using (IDbConnection db = new MySqlConnection(connStr))
            {
                // 3.SQL‑Einfügeanweisung für die Tabelle student erstellen
                string sql = @"INSERT INTO student (FirstName, LastName, Email) 
                               VALUES (@FirstName, @LastName, @Email)";

                // 4.Entity‑Objekt instanziieren
                var stu = new Student()
                {
                    FirstName = "foxdevelop",
                    LastName = "com",
                    Email = "admin@foxdevelop.com"
                };

                // 5.Einfügung ausführen, Anzahl betroffener Zeilen ermitteln
                int rows = db.Execute(sql, stu);

                // 6.Daten per Abfrage überprüfen
                List<Student> stuList = db.Query<Student>("SELECT * FROM student").ToList();
            }

            Console.ReadKey();
        }
    }

    // Student‑Entity‑Klasse (Eigenschaftsnamen müssen mit SQL‑@‑Parameternamen übereinstimmen)
    public class Student
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
    }
}Code-Sprache: HTML, XML (xml)

Hinweise

  1. Regeln für die Parameterzuordnung
    Dapper gleicht Entity‑Eigenschaftsnamen automatisch mit den @xxx‑Parametern im SQL ab. Groß‑/Kleinschreibung spielt keine Rolle, gleiche Namen werden aber empfohlen.
  2. Rückgabewert von Execute
    int rowsAffected = db.Execute(sql, stu);
  • Rückgabewert ≥1: Einfügen erfolgreich;
  • Rückgabewert 0: Keine Zeilen wurden eingefügt.
  1. Konfiguration der Verbindungszeichenfolge (App.config)
<configuration>
  <connectionStrings>
    <add name="StudentConnection" 
         connectionString="server=localhost;database=testdb;uid=root;pwd=123456" 
         providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
</configuration>Code-Sprache: HTML, XML (xml)

Automatisch hochgezählte Primärschlüssel‑ID neuer Datensätze abrufen (MySQL)

Falls die Tabelle student einen auto‑increment Primärschlüssel Id besitzt, ermitteln Sie die ID des neu erstellten Datensatzes:

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

long newStudentId = db.ExecuteScalar<long>(sql, stu);Code-Sprache: HTML, XML (xml)

Einfügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert