Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memanggil Fungsi Ditakrifkan SQL (UDF) dengan betul dari C#?

Bagaimana untuk Memanggil Fungsi Ditakrifkan SQL (UDF) dengan betul dari C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-25 16:11:09262semak imbas

How to Correctly Call SQL Defined Functions (UDFs) from C#?

Memanggil Fungsi Ditakrifkan SQL dalam C#

Menyiasat pangkalan data menggunakan fungsi yang ditentukan SQL daripada kod C# memerlukan pertimbangan khusus apabila mengakses fungsi yang ditentukan pengguna ( UDF) dalam pertanyaan SQL. Begini cara anda boleh memanggil fungsi skalar T-SQL bernama "Tcupom" daripada kod C# anda:

Fungsi SQL:

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

Kod C#:

Ralat dalam Asal Kod:
Kod C# asal membuat dua kesilapan:

  1. Memanggil nama UDF secara langsung sebagai arahan, yang bukan sintaks yang betul untuk mengakses UDF.
  2. Menetapkan CommandType kepada StoredProcedure apabila ia sepatutnya Teks untuk UDFs.

Kod Dibetulkan:
Kod yang diperbetulkan di bawah menunjukkan cara memanggil fungsi "Tcupom" dengan betul daripada C#:

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

Penjelasan:

  • Objek SqlCommand ialah dibina dengan pernyataan pertanyaan SQL yang merangkumi nama UDF yang layak sepenuhnya, dbo.Tcupom.
  • Objek SqlParameter ditakrifkan dengan nama parameter input UDF, @code, dan nilainya ditetapkan kepada parameter cupom yang dihantar kepada kaedah C#.
  • Kaedah ExecuteScalar() digunakan untuk melaksanakan UDF dan mendapatkan semula skalarnya hasil.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi Ditakrifkan SQL (UDF) dengan betul dari 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