Maison >base de données >tutoriel mysql >Comment appeler correctement les fonctions définies par SQL (UDF) à partir de C# ?

Comment appeler correctement les fonctions définies par SQL (UDF) à partir de C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-25 16:11:09262parcourir

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

Appel de fonctions définies par SQL en C#

L'interrogation d'une base de données à l'aide de fonctions définies par SQL à partir du code C# nécessite des considérations spécifiques lors de l'accès aux fonctions définies par l'utilisateur ( UDF) dans une requête SQL. Voici comment appeler une fonction scalaire T-SQL nommée « Tcupom » à partir de votre code C# :

Fonction 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

Code C# :

Erreur dans l'original Code :
Le code C# original a commis deux erreurs :

  1. Appeler le nom de l'UDF directement sous forme de commande, ce qui n'est pas la syntaxe correcte pour accéder aux UDF.
  2. Définition du CommandType sur StoredProcedure alors qu'il devrait être Text for UDF.

Code corrigé :
Le code corrigé ci-dessous montre comment appeler correctement la fonction "Tcupom" depuis 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;
}

Explication :

  • L'objet SqlCommand est construit avec une instruction de requête SQL qui inclut le nom complet de l'UDF, dbo.Tcupom.
  • L'objet SqlParameter est défini avec le nom du paramètre d'entrée de l'UDF, @code, et sa valeur est définie sur le paramètre cupom transmis au Méthode C#.
  • La méthode ExecuteScalar() permet d'exécuter l'UDF et de récupérer son scalaire résultat.

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