Melaksanakan Sisipan Pukal dengan Pembolehubah Berparameter dalam C#
Dalam operasi pangkalan data, selalunya wajar untuk memasukkan berbilang pembolehubah berparameter ke dalam pangkalan data, terutamanya apabila pangkalan data menerima data daripada aplikasi web. Untuk mengoptimumkan operasi sedemikian dan mengelakkan pengulangan, seseorang boleh menggunakan prosedur tersimpan dan parameter bernilai jadual.
Untuk mencapai ini dalam C#, ikut langkah berikut:
Buat Jenis Jadual Ditakrifkan Pengguna (UDT):
Tentukan UDT untuk memadankan struktur data yang ingin anda masukkan. Contohnya:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO
Buat Prosedur Tersimpan dengan Parameter Bernilai Jadual:
Buat prosedur tersimpan yang menerima UDT sebagai parameter. Prosedur akan memasukkan data ke dalam jadual pangkalan data sasaran:
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
Isi Jadual Data:
Melaksanakan Prosedur Tersimpan dengan Parameter:
Laksanakan arahan untuk melaksanakan sisipan pukal.
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(); } }
Dengan mengikut langkah ini, anda boleh melaksanakan dengan cekap sisipan pukal berparameter ke pangkalan data SQL Server menggunakan kod C#. Pendekatan ini bukan sahaja menghalang pengulangan tetapi juga mengoptimumkan prestasi pangkalan data dengan melaksanakan satu pertanyaan untuk berbilang baris.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Sisipan Pukal Berparameter yang Cekap dalam Pelayan C# dan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!