以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 为什么返回的小数变成了整数? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192998) |
-- 作者:HappyFt -- 发布时间:2024/8/8 16:17:00 -- 为什么返回的小数变成了整数? \'通过储存过程获取当前仓库当前产品的即时库存 cmd.CommandText = "usp_kcquery_pcodeck" cmd.StoredProcedure = True cmd.Parameters.Add("@qty", 0, False) \'这是第一个参数,用于获取存储过程的返回值 cmd.Parameters.Add("@pcode", pcode) \'第二个参数指定输入参数 cmd.Parameters.Add("@ck", ck) \'第三个参数指定输入参数 cmd.ExecuteNonQuery Dim qty_kc As Double = Cmd.Parameters("@qty") \'取得存储过程的返回值 MessageBox.Show(qty_kc) 从后台返回一个值,后台sql中print出来是2.6,为何用上面代码返回到foxtable中显示变为2,小数不见了, 如果要保存小数,上面红色代码应该如何写? 谢谢
|
-- 作者:有点蓝 -- 发布时间:2024/8/8 16:29:00 -- 存储过程里定义的返回参数类型是整数吧 |
-- 作者:HappyFt -- 发布时间:2024/8/8 16:47:00 -- 没有呀,定义的是float,储存过程中是下面这样的 --返回期末数量 DECLARE @qty FLOAT SELECT @qty = ISNULL(@numS,0) + ISNULL(@num2,0); --PRINT @qty RETURN @qty; 返回前在后端print打开都是显示2.6, 到前端用一楼的代码显示时就变成2了 |
-- 作者:有点蓝 -- 发布时间:2024/8/8 16:58:00 -- 试试 SELECT @qty = ISNULL(@numS,0.0) + ISNULL(@num2,0.0); …… cmd.Parameters.Add("@qty", 0F, False)
|
-- 作者:HappyFt -- 发布时间:2024/8/8 18:12:00 -- 还是不可以,是不是前端设置接收返回参数那里只能接收整数,或者是要怎么设置一下才可以 |
-- 作者:有点蓝 -- 发布时间:2024/8/8 20:17:00 -- 百度了一下,RETURN 值的范围是 0 到 255。改为使用输出参数吧 |
-- 作者:HappyFt -- 发布时间:2024/8/9 8:54:00 -- 谢谢蓝老师,可以了 |