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; }
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; }
Dans ce code modifié, une nouvelle instruction SQL en ligne est utilisée :
SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
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!