Maison >base de données >tutoriel mysql >Comment appeler correctement une fonction définie par l'utilisateur (UDF) SQL Server à partir de C# ?
Appel de fonctions définies par SQL en C# à l'aide de Inline SQL
Dans SQL Server, les fonctions définies par l'utilisateur (UDF) peuvent améliorer la manipulation et l'analyse des données capacités. Pour invoquer une UDF scalaire à partir du code C#, il est important d'utiliser la bonne approche.
Considérez l'UDF scalaire TSQL suivante :
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
Pour appeler cette fonction dans le code C#, on peut tenter pour utiliser une syntaxe de type procédure stockée :
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; }
Cependant, cette approche est incorrecte. Pour invoquer une UDF, il est nécessaire d'utiliser du SQL en ligne dans un objet SqlCommand :
SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
Il est crucial de supprimer la propriété CommandType, car les UDF ne sont pas des procédures stockées.
Le code modifié apparaissent comme suit :
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; }
En utilisant du SQL en ligne pour appeler l'UDF, les développeurs peuvent exploiter efficacement la puissance de fonctions définies par l'utilisateur dans leurs applications 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!