用存储过程添加decimal数值小数点后的数字没有了

curd0468 2007-05-28 07:40:15
存储过程是这样的
ALTER PROCEDURE T_AddOutStorage
(
@T_DesignNumber nvarchar(8),
@T_Color nvarchar(8),
@T_Number int,
@T_SignalMoney decimal(13),
@T_TotalMoney decimal(13),
)
AS

INSERT INTO
Storage
(
T_DesignNumber,
T_Color,
T_Number,
T_Unit,
T_SignalMoney,
T_TotalMoney,
)
VALUES
(
@T_DesignNumber,
@T_Color,
@T_Number,
@T_Unit,
@T_SignalMoney,
@T_TotalMoney,
)
RETURN

运行时一切都没有问题,就是decimal数据类型@T_SignalMoney和@T_TotalMoney后面如果是带小数点的数例如23.53,加入到数据库后就变成了23,我在数据库里是设decimal的小数点位数为2位,在数据库里填是可以保存两位小数的,但是为什么用存储过程加小数就没有了呢?
请高人给指点下,谢谢了
...全文
632 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xddtrue 2012-08-30
  • 打赏
  • 举报
回复
感谢楼上的各位,我也是刚知道在存储过程中decimal也是要定义小数位数的,这问题搞了我半天了。
curd0468 2007-05-28
  • 打赏
  • 举报
回复
感谢两位,搞定了,原来decimal数据在要写成 @T_SignalMoney decimal(13,2)才行
curd0468 2007-05-28
  • 打赏
  • 举报
回复
我还没有用到程序里呢,就是只运行了存储过程就不行了,另外用@T_SignalMoney*1.00也是不行
sbqcel 2007-05-28
  • 打赏
  • 举报
回复
需设置那个字段的精度和小数位数
hertcloud 2007-05-28
  • 打赏
  • 举报
回复
是不是你在程序中 有了 类型 转换
你用 Sql 事件 探测 看看 传到 存储过程的 值是 好多.

如果没有问题 试试

VALUES
(
@T_DesignNumber,
@T_Color,
@T_Number,
@T_Unit,
@T_SignalMoney*1.00,
@T_TotalMoney*1.00,
)

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧