gpt4 book ai didi

c# - 十进制 DbParameter 的精度问题

转载 作者:太空狗 更新时间:2023-10-30 00:47:30 27 4
gpt4 key购买 nike

在 C# 中,我对 Sql Server 存储过程使用十进制输出 DbParameter。我这样创建参数


DbParameter prm = comm.CreateParameter();

prm.ParameterName = "@Price";

prm.DbType = DbType.Decimal;

prm.Direction = ParameterDirection.Output;

comm.Parameters.Add(prm);

//and set the value of comm.Parameters["@Price"] to a variable,

decimal.TryParse(comm.Parameters["@Price"].Value.ToString(),
out this.ProdPrice);

但是 out 参数的值总是四舍五入。

如果我从 Sql Server Management Studio 调用相同的存储过程,我可以得到它参数与它的精度正确

DbParameter 没有精度或比例属性。而且我必须在 System.Data.Common 命名空间上使用 DbParameter 来获取数据

我怎样才能完全精确地获取十进制值

提前致谢...

最佳答案

加上Marc的建议,可以把代码改成


IDbDataParameter prm = comm.CreateParameter();

其余代码应该可以正常工作。Precision 和 Scale 属性是 DbParameter 中的“显式接口(interface)实现”。

关于c# - 十进制 DbParameter 的精度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514044/

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