在C# 中呼叫SQL 使用者定義函數(UDF)
您希望從C# 程式碼與SQL 標量函數進行交互,並提供了以下C# 程式碼:
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; }
但是,您遇到了一個錯誤。原因是,與預存程序不同,您無法直接從 C# 呼叫 SQL 中的 UDF。
解決方案:
要在 C# 中呼叫 UDF,您需要使用內嵌SQL語句。以下是調整後的程式碼:
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; }
在此修改後的程式碼中,採用了新的內聯SQL 語句:
SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);
此語句透過其完全限定名稱( dbo.Tcupom) 引用UDF ) 並包含@code 輸入值的參數。透過使用此方法,您可以呼叫 Tcupom UDF 並在 C# 程式碼中檢索結果。
以上是如何從 C# 呼叫 SQL 使用者定義函數 (UDF)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!