Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memasukkan Berbilang Baris dengan Pembolehubah Berparameter dengan Cekap dalam C# Menggunakan Parameter Bernilai Jadual?

Bagaimana untuk Memasukkan Berbilang Baris dengan Pembolehubah Berparameter dengan Cekap dalam C# Menggunakan Parameter Bernilai Jadual?

Barbara Streisand
Lepaskan: 2025-01-12 06:02:44
asal
307 orang telah melayarinya

How to Efficiently Insert Multiple Rows with Parameterized Variables in C# Using Table-Valued Parameters?

Memanfaatkan Parameter Bernilai Jadual untuk Sisipan Data Pukal dalam C#

Panduan ini menunjukkan cara untuk memasukkan berbilang baris dengan cekap ke dalam pangkalan data SQL Server (2008 atau lebih baru) menggunakan pertanyaan berparameter tunggal dalam C#. Teknik ini, menggunakan parameter bernilai jadual, meningkatkan prestasi dengan ketara berbanding pernyataan sisipan individu.

Mentakrifkan Jenis Jadual Ditakrifkan Pengguna

Mulakan dengan mencipta jenis jadual yang ditentukan pengguna dalam SQL Server untuk mewakili struktur data untuk sisipan anda:

<code class="language-sql">CREATE TYPE MyTableType AS TABLE
(
    Col1 int,
    Col2 varchar(20) 
)
GO</code>
Salin selepas log masuk

Penciptaan Prosedur Tersimpan

Seterusnya, buat prosedur tersimpan yang menerima jenis jadual yang ditentukan pengguna ini sebagai parameter:

<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>
Salin selepas log masuk

Pelaksanaan C#: Jadual Data dan Pelaksanaan Prosedur Tersimpan

Dalam kod C# anda, bina DataTable untuk menyimpan data yang anda ingin masukkan:

<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 here...  For example:
DataRow row1 = dt.NewRow();
row1["Col1"] = 1;
row1["Col2"] = "Value 1";
dt.Rows.Add(row1);

// ...add more rows as needed...</code>
Salin selepas log masuk

Akhir sekali, laksanakan prosedur tersimpan menggunakan SqlCommand:

<code class="language-csharp">using (SqlConnection con = new SqlConnection("YourConnectionString"))
{
    using (SqlCommand cmd = new SqlCommand("MyProcedure", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@MyTable", dt); //AddWithValue handles SqlDbType automatically
        con.Open();
        cmd.ExecuteNonQuery();
    }
}</code>
Salin selepas log masuk

Kaedah ini menyediakan cara yang sangat cekap untuk memasukkan berbilang baris dengan nilai berparameter, menghalang kerentanan suntikan SQL dan meningkatkan prestasi pangkalan data berbanding dengan pernyataan INSERT individu. Ingat untuk menggantikan "YourConnectionString" dengan rentetan sambungan sebenar anda.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Berbilang Baris dengan Pembolehubah Berparameter dengan Cekap dalam C# Menggunakan Parameter Bernilai Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan