gpt4 book ai didi

c# - SQL Server 不将十进制值传递给 C#

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:22 25 4
gpt4 key购买 nike

我正在尝试调用一个向我的 C# 网站返回十进制值的函数。当我在 SQL Server 中调用该函数时,会出现尾随的十进制值。但是当它传递到 C# 时,尾随的小数点丢失了。

这是我的 SQL Server 存储过程被调用:

declare @MonthlyTotal as decimal(10,2)
set @MonthlyTotal=(select cast((Linetotal * Subtotal) as decimal(10,2)))
return @MonthlyTotal

在我的 C# 服务器代码中,我收到了存储过程值。但它没有尾随小数。

SqlConnection sqlConnection = new SqlConnection(Connection);

SqlCommand cmd4 = new SqlCommand();
cmd4.Connection = sqlConnection;
cmd4.CommandType = CommandType.StoredProcedure;
cmd4.CommandText = "GetTBSMonthlyTotalService";

SqlParameter JobParam = new SqlParameter("MonthlyTotal", SqlDbType.Decimal, 10);
JobParam.Precision = 10;
JobParam.Scale = 2;
JobParam.Direction = ParameterDirection.ReturnValue;

cmd4.Parameters.Add(JobParam);

try
{
sqlConnection.Open();
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}

cmd4.ExecuteNonQuery();

double ID = Double.Parse((cmd4.Parameters[0].Value.ToString()));
sqlConnection.Close();
return ID;

最佳答案

存储过程的返回值只能是整数类型(INTBIGINT - 参见relevant MSDN docs on RETURN)并且它是仅用于表示存储过程成功(或失败)。

如果您需要返回任何其他内容 - 包括小数 - 您需要使用 OUTPUT 参数,或选择该值作为结果集的 SELECT 语句存储过程。

关于c# - SQL Server 不将十进制值传递给 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28180133/

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