Heim > Backend-Entwicklung > C++ > Wie kann ich mehrere Zeilen mit parametrisierten Abfragen in C# effizient einfügen?

Wie kann ich mehrere Zeilen mit parametrisierten Abfragen in C# effizient einfügen?

DDD
Freigeben: 2025-01-01 04:54:10
Original
512 Leute haben es durchsucht

How Can I Efficiently Insert Multiple Rows with Parameterized Queries in C#?

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)
)
Nach dem Login kopieren

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
Nach dem Login kopieren

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();
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage