Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Melakukan Sisipan Pukal Berparameter yang Cekap dalam Pelayan C# dan SQL?

Bagaimanakah Saya Boleh Melakukan Sisipan Pukal Berparameter yang Cekap dalam Pelayan C# dan SQL?

Susan Sarandon
Lepaskan: 2024-12-30 22:17:10
asal
817 orang telah melayarinya

How Can I Perform Efficient Parameterized Bulk Inserts in C# and SQL Server?

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:

  1. 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
      Salin selepas log masuk
  2. 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
      Salin selepas log masuk
  3. Isi Jadual Data:

    • Mulakan Jadual Data dengan definisi lajur yang sepadan dengan UDT dan isikannya dengan anda data.
  4. Melaksanakan Prosedur Tersimpan dengan Parameter:

    • Mewujudkan sambungan ke pangkalan data dan mencipta objek arahan untuk prosedur tersimpan.
    • Tambahkan DataTable yang terisi pada parameter arahan sebagai jenis berstruktur 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();
        }
      }
      Salin selepas log masuk

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!

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