Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Berbilang Baris Parameter dengan Cekap ke dalam Pangkalan Data menggunakan C#?

Bagaimana untuk Memasukkan Berbilang Baris Parameter dengan Cekap ke dalam Pangkalan Data menggunakan C#?

Susan Sarandon
Susan Sarandonasal
2025-01-12 08:19:42936semak imbas

How to Efficiently Insert Multiple Parameterized Rows into a Database using C#?

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:

  1. Mentakrifkan Jenis Jadual:

    Buat jenis jadual SQL Server tersuai untuk menentukan struktur data anda, menyatakan nama lajur dan jenis data.

  2. 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.

  3. Melaksanakan Kod C#:

    Dalam aplikasi C# anda:

    • Buat objek DataTable, mencerminkan struktur jenis jadual tersuai anda.
    • Isi ini DataTable dengan data yang anda ingin masukkan.
    • Laksanakan prosedur tersimpan, lulus 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!

Kenyataan:
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