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
472 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!

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