Maison > base de données > tutoriel mysql > Comment appeler une fonction définie par l'utilisateur (UDF) SQL à partir de C# ?

Comment appeler une fonction définie par l'utilisateur (UDF) SQL à partir de C# ?

Mary-Kate Olsen
Libérer: 2024-12-27 17:41:11
original
592 Les gens l'ont consulté

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

Appel d'une fonction définie par l'utilisateur (UDF) SQL en C#

Vous souhaitez interagir avec une fonction scalaire SQL à partir de votre code C#, et le code C# suivant a été fourni :

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;
}
Copier après la connexion

Cependant, vous rencontrez une erreur. La raison en est que, contrairement aux procédures stockées, vous ne pouvez pas appeler directement une UDF en SQL depuis C#.

Solution :

Pour invoquer une UDF en C#, vous besoin d'utiliser une instruction SQL en ligne. Voici le code ajusté :

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;
}
Copier après la connexion

Dans ce code modifié, une nouvelle instruction SQL en ligne est utilisée :

SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
Copier après la connexion

Cette instruction fait référence à l'UDF par son nom complet (dbo.Tcupom ) et inclut un paramètre pour la valeur d'entrée @code. En utilisant cette approche, vous pouvez appeler l'UDF Tcupom et récupérer le résultat dans votre code C#.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal