Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Lulus Senarai Rentetan daripada C# ke Prosedur Tersimpan Pelayan SQL dengan Cekap?

Bagaimanakah Saya Boleh Lulus Senarai Rentetan daripada C# ke Prosedur Tersimpan Pelayan SQL dengan Cekap?

Susan Sarandon
Lepaskan: 2025-01-04 22:35:40
asal
769 orang telah melayarinya

How Can I Efficiently Pass a List of Strings from C# to a SQL Server Stored Procedure?

C# SQL Server: Melepasi Senarai kepada Prosedur Tersimpan

Dalam C#, adalah mungkin untuk memanggil prosedur tersimpan SQL Server melalui kod . Walau bagaimanapun, menghantar senarai rentetan adalah tidak mudah. Artikel ini meneroka kaedah alternatif menggunakan Jenis Jadual Ditakrifkan Pengguna (UDT) sebaliknya.

Mencipta Jenis Jadual Ditakrifkan Pengguna (UDT)

SQL Server 2008 memperkenalkan UDT , yang menyediakan cara berstruktur untuk menghantar jenis data yang kompleks kepada prosedur tersimpan. Untuk mencipta UDT bagi senarai rentetan:

CREATE TYPE [dbo].[StringList] AS TABLE(
    [Item] [NVARCHAR](MAX) NULL
);
Salin selepas log masuk

Mengubah suai Prosedur Tersimpan

Untuk menerima parameter UDT, prosedur tersimpan perlu diubah suai seperti berikut :

CREATE PROCEDURE [dbo].[sp_UseStringList]
    @list StringList READONLY
AS
BEGIN
    -- Just return the items we passed in
    SELECT l.Item FROM @list l;
END
Salin selepas log masuk

Meluluskan Senarai daripada C# Kod

Akhir sekali, berikut ialah cara untuk lulus senarai daripada kod C#:

using System.Data;

var con = new SqlConnection(connstring);
con.Open();

using (SqlCommand cmd = new SqlCommand("exec sp_UseStringList @list", con))
{
    using (var table = new DataTable())
    {
        table.Columns.Add("Item", typeof(string));

        for (int i = 0; i < 10; i++)
            table.Rows.Add("Item " + i.ToString());

        var pList = new SqlParameter("@list", SqlDbType.Structured);
        pList.TypeName = "dbo.StringList";
        pList.Value = table;

        cmd.Parameters.Add(pList);

        using (var dr = cmd.ExecuteReader())
        {
            while (dr.Read())
                Console.WriteLine(dr["Item"].ToString());
        }
    }
}
Salin selepas log masuk

Kesimpulan

Menggunakan UDT adalah cara yang berkesan cara untuk menghantar senarai rentetan kepada prosedur tersimpan SQL Server daripada kod C#. Dengan mengikut langkah yang digariskan di atas, pembangun boleh mengendalikan senarai rentetan yang dinamik dan besar dengan mudah dalam interaksi pangkalan data mereka.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Lulus Senarai Rentetan daripada C# ke Prosedur Tersimpan Pelayan SQL dengan Cekap?. 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