我通过存储过程将值0.15发送到数据库,但它被存储为0值。为什么?请指导。我正在使用C#+ ASP.NET + SQL Server 2008
答案 0 :(得分:2)
该列存储的数据类型是什么?另外:存储过程的参数用于传递该值的数据类型是什么?
我的预感:如果您使用例如DECIMAL
然后你正在使用DECIMAL(18,0)
- >最多18位数,但小数点后没有数字。这会将0.15截断为0.仅使用DECIMAL
作为数据类型并不会自动使其支持小数点后的数字(许多SQL程序员常犯的错误 - 一次 - 然后他们就知道了)
确保存储过程的参数和表中的列都允许小数值,例如类似于DECIMAL(18,4)
或类似的东西
答案 1 :(得分:0)
我很确定你的代码中某处有一个int / integer,这就是它被舍入为0的地方