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
Mary-Kate Olsenasal
2024-12-19 21:39:15477semak imbas

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

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;
}

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);

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;
}

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:
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