SQL Server双倍到十进制读取问题

时间:2010-05-14 12:36:38

标签: c# sql-server

从前端应用程序

我通过存储过程将值0.15发送到数据库,但它被存储为0值。为什么?请指导。我正在使用C#+ ASP.NET + SQL Server 2008

2 个答案:

答案 0 :(得分:2)

该列存储的数据类型是什么?另外:存储过程的参数用于传递该值的数据类型是什么?

我的预感:如果您使用例如DECIMAL然后你正在使用DECIMAL(18,0) - >最多18位数,但小数点后没有数字。这会将0.15截断为0.仅使用DECIMAL作为数据类型并不会自动使其支持小数点后的数字(许多SQL程序员常犯的错误 - 一次 - 然后他们就知道了)

确保存储过程的参数和表中的列都允许小数值,例如类似于DECIMAL(18,4)或类似的东西

答案 1 :(得分:0)

我很确定你的代码中某处有一个int / integer,这就是它被舍入为0的地方