Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam Pangkalan Data SQL Server 2008 menggunakan Parameter Bernilai Jadual Berparameter dan C#?
Memasukkan banyak baris secara individu ke dalam pangkalan data SQL Server 2008 boleh memberi kesan ketara kepada prestasi. Artikel ini menunjukkan pendekatan yang lebih cekap menggunakan parameter nilai jadual berparameter dan C#.
Mulakan dengan mencipta jenis jadual yang ditentukan pengguna dalam SQL Server yang mencerminkan struktur jadual sasaran anda:
<code class="language-sql">CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO</code>
Seterusnya, buat prosedur tersimpan yang menerima jenis jadual ini sebagai input dan melakukan sisipan pukal:
<code class="language-sql">CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- Readonly is crucial for table-valued parameters ) AS BEGIN INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable; END; GO</code>
Akhir sekali, gunakan C# untuk mengisi DataTable
dan hantarkannya sebagai parameter bernilai jadual kepada prosedur yang disimpan:
<code class="language-csharp">DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Populate the DataTable with your data using (SqlConnection con = new SqlConnection("ConnectionString")) { using (SqlCommand cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@MyTable", dt); // AddWith Value handles SqlDbType automatically con.Open(); cmd.ExecuteNonQuery(); } }</code>
Kaedah ini memanfaatkan kuasa parameter bernilai jadual untuk meningkatkan kecekapan dengan ketara memasukkan berbilang baris ke dalam pangkalan data SQL Server 2008 anda daripada aplikasi C# anda. Pendekatan ini menawarkan prestasi unggul berbanding sisipan baris individu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam Pangkalan Data SQL Server 2008 menggunakan Parameter Bernilai Jadual Berparameter dan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!