Masseneinfügung parametrisierter Variablen in eine Datenbank mit C#
Das effiziente Einfügen zahlreicher parametrisierter Variablen in eine Datenbank ist eine häufige Herausforderung für Entwickler. C# bietet eine Lösung, die Tabellenwertparameter und gespeicherte Prozeduren verwendet, um mehrere Zeilen in eine einzelne Abfrage einzufügen.
Erstellen des benutzerdefinierten Tabellentyps
Beginnen Sie mit der Erstellung einer Benutzerdefinierter Tabellentyp, der die Struktur der Zieldatenbanktabelle widerspiegelt:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO
Definieren des Gespeicherten Prozedur
Als nächstes erstellen Sie eine gespeicherte Prozedur, die den neu erstellten Tabellentyp als Eingabeparameter akzeptiert:
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly! ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO
Diese gespeicherte Prozedur fügt die Daten aus dem Tabellentyp @MyTable ein in die MyTable-Tabelle in der Datenbank.
Ausführen der gespeicherten Prozedur von C#
Führen Sie abschließend die gespeicherte Prozedur aus C# mit dem folgenden Code aus:
DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Fill your data table here 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(); } }
Vorteile der Verwendung von Tabellenwertparametern
Die Verwendung von Tabellenwertparametern bietet mehrere Möglichkeiten Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann C# parametrisierte Daten effizient massenhaft in eine Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!