Einfügen mehrerer parametrisierter Zeilen mit einer einzigen Abfrage in C#
Parametrierte Abfragen ermöglichen Entwicklern die Ausführung von SQL-Anweisungen ohne feste Codierung von Werten, wodurch SQL verhindert wird Injektionsangriffe und Verbesserung der Leistung. Das Einfügen mehrerer Zeilen mit parametrisierten Werten kann effizient sein, insbesondere wenn eine größere Anzahl von Zeilen verwendet wird.
Im bereitgestellten Code wird jede Zeile einzeln eingefügt, was langsam sein kann. Um dieses Problem zu lösen, können Sie Tabellenwertparameter mit SQL Server 2008 und höher nutzen.
Erstellen eines Tabellenwertparameters
Erstellen Sie zunächst einen Benutzer- definierter Tabellentyp, der die Spalten Ihrer Daten definiert:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) )
Erstellen eines gespeicherten Prozedur
Als nächstes erstellen Sie eine gespeicherte Prozedur, die den Tabellenwertparameter akzeptiert:
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO
Beachten Sie, dass der @MyTable-Parameter als READONLY markiert ist, da Tabellenwertparameter dies sein müssen schreibgeschützt.
Ausführen der gespeicherten Prozedur mit a DataTable
Führen Sie abschließend die gespeicherte Prozedur von C# mit einer DataTable 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(); } }
Durch die Verwendung von Tabellenwertparametern können Sie erheblich mehrere Zeilen mit einer einzigen parametrisierten Abfrage einfügen Verbesserung der Leistung.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen mit parametrisierten Abfragen in C# effizient einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!