Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memanggil Fungsi Ditentukan Pengguna (UDF) Pelayan SQL dengan betul daripada C#?

Bagaimana untuk Memanggil Fungsi Ditentukan Pengguna (UDF) Pelayan SQL dengan betul daripada C#?

Mary-Kate Olsen
Lepaskan: 2024-12-19 21:39:15
asal
611 orang telah melayarinya

How to Correctly Call a SQL Server User-Defined Function (UDF) from C#?

Memanggil Fungsi Ditakrifkan SQL dalam C# Menggunakan SQL Sebaris

Dalam Pelayan SQL, fungsi takrif pengguna (UDF) boleh meningkatkan manipulasi dan analisis data keupayaan. Untuk menggunakan UDF skalar daripada kod C#, adalah penting untuk menggunakan pendekatan yang betul.

Pertimbangkan UDF skalar TSQL berikut:

create function TCupom (@cupom int)
returns float
as
begin
    declare @Tcu float;
    select @Tcu = sum (total) from alteraca2 where pedido = @cupom 
    if (@tcu is  null)
        set @tcu = 0;
    return @tcu;
end
Salin selepas log masuk

Untuk memanggil fungsi ini dalam kod C#, seseorang boleh mencuba untuk menggunakan sintaks seperti prosedur yang disimpan:

public void TotalCupom(int cupom)
{ 
    float SAIDA;           
    SqlDataAdapter da2 = new SqlDataAdapter();

    if (conex1.State == ConnectionState.Closed)
    { 
        conex1.Open();
    }

    SqlCommand Totalf = new SqlCommand("Tcupom", conex1);
    SqlParameter code1 = new SqlParameter("@code", SqlDbType.Int);
    code1.Value = cupom ;
    Totalf.CommandType = CommandType.StoredProcedure ;
    SAIDA = Totalf.ExecuteScalar();

    return SAIDA;
}
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini tidak betul. Untuk menggunakan UDF, anda perlu menggunakan SQL sebaris dalam objek SqlCommand:

SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
Salin selepas log masuk

Adalah penting untuk mengalih keluar sifat CommandType, kerana UDF bukan prosedur yang disimpan.

Kod yang diubah suai akan muncul seperti berikut:

public void TotalCupom(int cupom)
{ 
    float SAIDA;           
    SqlDataAdapter da2 = new SqlDataAdapter();
    if (conex1.State == ConnectionState.Closed)
    {
        conex1.Open();
    }
    SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
    SqlParameter code1 = new SqlParameter("@code", SqlDbType.Int);
    code1.Value = cupom;
    SAIDA = Totalf.ExecuteScalar();

    return SAIDA;
}
Salin selepas log masuk

Dengan menggunakan SQL sebaris untuk memanggil UDF, pembangun boleh memanfaatkan kuasa fungsi yang ditentukan pengguna dengan berkesan dalam aplikasi C# mereka.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi Ditentukan Pengguna (UDF) Pelayan SQL dengan betul daripada 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan