Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit C# effizient mehrere parametrisierte Zeilen in eine SQL-Datenbank einfügen?

Wie kann ich mit C# effizient mehrere parametrisierte Zeilen in eine SQL-Datenbank einfügen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-12 06:45:41568Durchsuche

How Can I Efficiently Insert Multiple Parameterized Rows into a SQL Database Using C#?

Verwendung von Tabellenwertparametern zur Implementierung der C#-batchparametrisierten Zeileneinfügung

Bei Datenbankoperationen ist es eine häufige Anforderung, mehrere Datenzeilen effizient einzufügen und gleichzeitig die Datensicherheit zu gewährleisten. In C# kann dies mithilfe von Tabellenwertparametern und gespeicherten Prozeduren erreicht werden.

Um die wiederholte Verwendung von „INSERT INTO“-Anweisungen zu vermeiden und parametrisierte Datenzeilen stapelweise einzufügen, befolgen Sie bitte die folgenden Schritte:

  1. Benutzerdefinierten Tabellentyp (UDT) erstellen: Definieren Sie eine Tabellenstruktur zur Darstellung der einzufügenden Zeilen. Zum Beispiel:

    <code class="language-sql">CREATE TYPE MyTableType AS TABLE
    (
        Col1 int,
        Col2 varchar(20)
    )
    GO</code>
  2. Gespeicherte Prozedur erstellen: Erstellen Sie eine gespeicherte Prozedur, die einen UDT als Parameter akzeptiert.

    <code class="language-sql">CREATE PROCEDURE MyProcedure
    (
        @MyTable dbo.MyTableType READONLY -- 注意:表值参数必须是只读的!
    )
    AS
    
    INSERT INTO MyTable (Col1, Col2)
    SELECT Col1, Col2
    FROM @MyTable
    
    GO</code>
  3. Daten vorbereiten: Erstellen Sie eine Datentabelle und füllen Sie sie mit einzufügenden Zeilen.

  4. Gespeicherte Prozedur ausführen: Verwenden Sie das SqlCommand-Objekt, um die gespeicherte Prozedur auszuführen und die Datentabelle als Parameter zu übergeben.

    <code class="language-csharp">using (var con = new SqlConnection("ConnectionString"))
    {
        using(var cmd = new SqlCommand("MyProcedure", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt;
            con.Open();
            cmd.ExecuteNonQuery();
        }
    }</code>

Mit dieser Methode können Sie mehrere Zeilen effizient in die Datenbank einfügen und gleichzeitig die Datensicherheit durch parametrisierte Abfragen gewährleisten. Dadurch werden doppelte und möglicherweise ineffiziente einzelne Einfügeanweisungen vermieden.

Das obige ist der detaillierte Inhalt vonWie kann ich mit C# effizient mehrere parametrisierte Zeilen in eine SQL-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn