Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:为什么返回的小数变成了整数?

1楼
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,小数不见了,
如果要保存小数,上面红色代码应该如何写?
谢谢
2楼
有点蓝 发表于:2024/8/8 16:29:00
存储过程里定义的返回参数类型是整数吧
3楼
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了
4楼
有点蓝 发表于:2024/8/8 16:58:00
试试

SELECT  @qty = ISNULL(@numS,0.0) + ISNULL(@num2,0.0);

……

cmd.Parameters.Add("@qty", 0F, False) 
5楼
HappyFt 发表于:2024/8/8 18:12:00
还是不可以,是不是前端设置接收返回参数那里只能接收整数,或者是要怎么设置一下才可以
6楼
有点蓝 发表于:2024/8/8 20:17:00
百度了一下,RETURN 值的范围是 0 到 255。改为使用输出参数吧
7楼
HappyFt 发表于:2024/8/9 8:54:00
谢谢蓝老师,可以了
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.