Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Memasukkan Berbilang Baris Parameter dengan Cekap ke dalam Pangkalan Data Pelayan SQL daripada C#?

Bagaimanakah Saya Boleh Memasukkan Berbilang Baris Parameter dengan Cekap ke dalam Pangkalan Data Pelayan SQL daripada C#?

Linda Hamilton
Lepaskan: 2025-01-05 00:47:40
asal
209 orang telah melayarinya

How Can I Efficiently Insert Multiple Parameterized Rows into a SQL Server Database from C#?

Memasukkan Berbilang Baris Berparameter ke dalam Pangkalan Data dalam C

Apabila bekerja dengan set data yang luas atau kemas kini yang kerap, adalah penting untuk mengoptimumkan operasi pangkalan data. Memasukkan berbilang baris ke dalam pangkalan data dengan cekap dalam C# menimbulkan cabaran yang ketara, terutamanya jika data diterima daripada sumber web dan perlu diparameterkan untuk tujuan keselamatan.

Batasan Pendekatan Semasa

Kod yang disediakan coretan menggunakan gelung untuk melaksanakan penyata sisipan individu bagi setiap data elemen:

foreach(string data in Scraper){
    // ...
    Command.executeNonQuery(); 
    conn.close();
}
Salin selepas log masuk

Walau bagaimanapun, pendekatan berulang ini tidak cekap dan boleh membawa kepada kesesakan prestasi dengan set data yang lebih besar.

Penyelesaian Dioptimumkan Menggunakan Parameter Bernilai Jadual

Untuk lebih pantas dan lebih banyak lagi sisipan data yang cekap dalam SQL Server 2008 dan kemudiannya, parameter bernilai jadual menawarkan penyelesaian yang menarik. Dengan mentakrifkan jenis jadual yang ditentukan pengguna dan memanfaatkannya dalam prosedur yang disimpan, anda boleh memasukkan berbilang baris dalam satu operasi.

Langkah 1: Buat Jenis Jadual Ditakrifkan Pengguna

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

Langkah 2: Buat Prosedur Tersimpan dengan Bernilai Jadual Parameter

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

Langkah 3: Laksanakan Prosedur Tersimpan daripada C#

DataTable dt = new DataTable();
// Fill data table with values...

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

Faedah Menggunakan Parameter Bernilai Jadual

  • Trafik Rangkaian Mengurangkan: Daripada menghantar berbilang INSERT kenyataan, hanya satu permintaan dihantar, mengandungi sekumpulan baris.
  • Peningkatan Prestasi: Enjin pangkalan data mengoptimumkan proses pemasukan, yang membawa kepada masa pelaksanaan yang lebih pantas.
  • Keselamatan Dipertingkat: Pertanyaan berparameter membantu menghalang serangan suntikan SQL, apabila nilai data dihantar berasingan daripada pertanyaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris Parameter dengan Cekap ke dalam Pangkalan Data Pelayan SQL daripada C#?. 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