在 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中文网其他相关文章!