Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C# Boleh Memasukkan Data Berparameter Secara Pukal Secara Cekap ke dalam Pangkalan Data?

Bagaimanakah C# Boleh Memasukkan Data Berparameter Secara Pukal Secara Cekap ke dalam Pangkalan Data?

Patricia Arquette
Lepaskan: 2025-01-03 21:18:09
asal
991 orang telah melayarinya

How Can C# Efficiently Bulk Insert Parameterized Data into a Database?

Sisipkan Pukal Pembolehubah Berparameter ke dalam Pangkalan Data menggunakan C#

Memasukkan banyak pembolehubah berparameter ke dalam pangkalan data dengan cekap adalah cabaran biasa yang dihadapi oleh pembangun. C# menawarkan penyelesaian menggunakan parameter bernilai jadual dan prosedur tersimpan untuk memasukkan berbilang baris dalam satu pertanyaan.

Mencipta Jenis Jadual Ditakrifkan Pengguna

Mulakan dengan mencipta jenis jadual yang ditentukan pengguna yang mencerminkan struktur pangkalan data sasaran jadual:

CREATE TYPE MyTableType AS TABLE
(
    Col1 int,
    Col2 varchar(20) 
)
GO
Salin selepas log masuk

Mentakrifkan Prosedur Tersimpan

Seterusnya, buat prosedur tersimpan yang menerima jenis jadual yang baru dibuat sebagai parameter input:

CREATE PROCEDURE MyProcedure
(
    @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly!
)
AS

INSERT INTO MyTable (Col1, Col2)
SELECT Col1, Col2 
FROM @MyTable

GO
Salin selepas log masuk

Prosedur tersimpan ini akan memasukkan data daripada jenis jadual @MyTable ke dalam jadual MyTable dalam pangkalan data.

Melaksanakan Prosedur Tersimpan daripada C#

Akhir sekali, laksanakan prosedur tersimpan daripada C# menggunakan kod berikut:

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();
    }
}
Salin selepas log masuk

Kelebihan Menggunakan Table-Valued Parameter

Menggunakan parameter bernilai jadual menawarkan beberapa kelebihan:

  • Cekap: Satu pertanyaan menggantikan berbilang penyata sisipan, meningkatkan prestasi dengan ketara.
  • Berparameter: Data dihantar dalam cara berparameter, mengurangkan risiko serangan suntikan SQL.
  • Boleh Diperluas: Jenis jadual yang ditentukan pengguna boleh diubah suai untuk memadankan senario yang berbeza tanpa mengubah prosedur yang disimpan.

Atas ialah kandungan terperinci Bagaimanakah C# Boleh Memasukkan Data Berparameter Secara Pukal Secara Cekap ke dalam Pangkalan Data?. 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