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

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 17:41:11564semak imbas

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

Memanggil SQL User-Defined Function (UDF) dalam C#

Anda ingin berinteraksi dengan fungsi skalar SQL daripada kod C# anda, dan kod C# berikut telah disediakan:

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, anda menghadapi ralat. Sebab untuk ini ialah, tidak seperti prosedur tersimpan, anda tidak boleh memanggil UDF secara langsung dalam SQL daripada C#.

Penyelesaian:

Untuk menggunakan UDF dalam C#, anda perlu menggunakan pernyataan SQL sebaris. Berikut ialah kod yang dilaraskan:

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

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

    // Use an inline SQL statement with the UDF
    SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);

    SqlParameter code1 = new SqlParameter("@code", SqlDbType.Int);
    code1.Value = cupom;

    SAIDA = Totalf.ExecuteScalar();

    return SAIDA;
}

Dalam kod yang diubah suai ini, pernyataan SQL sebaris baharu digunakan:

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

Pernyataan ini merujuk UDF dengan nama yang layak sepenuhnya (dbo.Tcupom ) dan termasuk parameter untuk nilai input @code. Dengan menggunakan pendekatan ini, anda boleh menghubungi Tcupom UDF dan mendapatkan semula hasilnya dalam kod C# anda.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi Ditentukan Pengguna SQL (UDF) 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