gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 04:52:34 24 4
gpt4 key购买 nike

我用 TSQL 编写了这个标量函数:

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# 代码中调用这个函数。这是我到目前为止所拥有的:

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;
}

最佳答案

你不能只调用函数名,你需要编写一个使用 UDF 的内联 SQL 语句:

SqlCommand Totalf = new SqlCommand("SELECT dbo.Tcupom(@code)", conex1);

并删除 CommandType,这不是存储过程,而是用户定义的函数。

总的来说:

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;
}

关于c# - 在 C# 中调用 SQL 定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com