Mengoptimumkan Sisipan Pangkalan Data dalam C#: Pendekatan Pertanyaan Berparameter Tunggal
Memasukkan banyak baris ke dalam pangkalan data secara individu adalah tidak cekap. Artikel ini menunjukkan kaedah berprestasi tinggi menggunakan pertanyaan berparameter tunggal dalam C# untuk mencapai sisipan pukal.
Kuncinya ialah memanfaatkan prosedur tersimpan dan parameter bernilai jadual. Pendekatan ini melibatkan tiga langkah utama:
Mentakrifkan Jenis Jadual:
Buat jenis jadual SQL Server tersuai untuk menentukan struktur data anda, menyatakan nama lajur dan jenis data.
Mencipta Prosedur Tersimpan:
Bangunkan prosedur tersimpan yang menerima jenis jadual tersuai anda sebagai parameter nilai jadual baca sahaja. Prosedur ini kemudiannya akan memasukkan data ke dalam jadual pangkalan data sasaran anda. Ingat, parameter bernilai jadual mesti menjadi READONLY
.
Melaksanakan Kod C#:
Dalam aplikasi C# anda:
DataTable
, mencerminkan struktur jenis jadual tersuai anda.DataTable
dengan data yang anda ingin masukkan.DataTable
sebagai parameter nilai jadual.Berikut ialah contoh yang menggambarkan proses ini:
Jenis Jadual (SQL):
<code class="language-sql">CREATE TYPE MyTableType AS TABLE ( Col1 INT, Col2 VARCHAR(20) ) GO</code>
Prosedur Tersimpan (SQL):
<code class="language-sql">CREATE PROCEDURE MyProcedure (@MyTable MyTableType READONLY) AS BEGIN INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable; END; GO</code>
Kod C#:
<code class="language-csharp">using System.Data; using System.Data.SqlClient; // ... other code ... DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Populate dt with your data here... e.g., //DataRow row = dt.NewRow(); //row["Col1"] = 1; //row["Col2"] = "Value1"; //dt.Rows.Add(row); using (SqlConnection con = new SqlConnection("ConnectionString")) { using (SqlCommand cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@MyTable", dt); //AddWithValue handles type inference con.Open(); cmd.ExecuteNonQuery(); } }</code>
Kaedah ini meningkatkan kecekapan pemasukan pangkalan data dengan ketara dengan mengurangkan bilangan perjalanan pergi dan balik pangkalan data, membawa kepada pemprosesan data yang lebih pantas dan berskala.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Berbilang Baris Parameter dengan Cekap ke dalam Pangkalan Data menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!