Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit C# effizient mehrere parametrisierte Zeilen in eine SQL-Datenbank einfügen?
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:
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>
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>
Daten vorbereiten: Erstellen Sie eine Datentabelle und füllen Sie sie mit einzufügenden Zeilen.
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!