首页 >数据库 >mysql教程 >如何从 C# 正确调用 SQL 定义函数 (UDF)?

如何从 C# 正确调用 SQL 定义函数 (UDF)?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-25 16:11:09276浏览

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

在 C# 中调用 SQL 定义的函数

在 C# 代码中使用 SQL 定义的函数查询数据库在访问用户定义的函数时需要特别注意( SQL 查询中的 UDF)。以下是如何从 C# 代码调用名为“Tcupom”的 T-SQL 标量函数:

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

C# 代码:

原文错误代码:
原来的C#代码犯了两个错误:

  1. 直接将UDF的名字作为命令调用,这不是访问UDF的正确语法。
  2. 将 CommandType 设置为 StoredProcedure,而其应为 Text UDF。

更正的代码:
下面更正的代码演示了如何正确调用“Tcupom”函数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;
}

说明:

  • SqlCommand 对象是使用包含 UDF 的完全限定名称 dbo.Tcupom 的 SQL 查询语句构造的。
  • SqlParameter 对象是使用 UDF 的输入参数名称定义的, @code,其值设置为传递给 C# 方法的 cupom 参数。
  • ExecuteScalar() 方法用于执行 UDF 并检索其标量结果。

以上是如何从 C# 正确调用 SQL 定义函数 (UDF)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn