Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap dengan Pertanyaan Berparameter dalam C#?

Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap dengan Pertanyaan Berparameter dalam C#?

DDD
Lepaskan: 2025-01-01 04:54:10
asal
562 orang telah melayarinya

How Can I Efficiently Insert Multiple Rows with Parameterized Queries in C#?

Memasukkan Berbilang Baris Berparameter dengan Pertanyaan Tunggal dalam C#

Pertanyaan berparameter membenarkan pembangun melaksanakan pernyataan SQL tanpa nilai pengekodan keras, menghalang SQL serangan suntikan dan meningkatkan prestasi. Memasukkan berbilang baris dengan nilai berparameter boleh menjadi cekap, terutamanya apabila menggunakan bilangan baris yang lebih besar.

Dalam kod yang disediakan, setiap baris dimasukkan secara berasingan, yang boleh menjadi perlahan. Untuk menangani perkara ini, anda boleh memanfaatkan parameter bernilai jadual dengan SQL Server 2008 dan ke atas.

Mencipta Parameter Bernilai Jadual

Pertama, cipta pengguna- jenis jadual yang ditentukan yang mentakrifkan lajur anda data:

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

Membuat Prosedur Tersimpan

Seterusnya, buat prosedur tersimpan yang menerima parameter bernilai jadual:

CREATE PROCEDURE MyProcedure
(
    @MyTable dbo.MyTableType READONLY 
)
AS

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

GO
Salin selepas log masuk

Ambil perhatian bahawa parameter @MyTable ditandakan sebagai READONLY kerana parameter bernilai jadual mestilah baca sahaja.

Melaksanakan Prosedur Tersimpan dengan Jadual Data

Akhir sekali, laksanakan prosedur tersimpan daripada C# menggunakan Jadual Data:

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

Dengan menggunakan parameter bernilai jadual, anda boleh memasukkan berbilang baris dengan pertanyaan berparameter tunggal, dengan ketara meningkatkan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap dengan Pertanyaan Berparameter dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan