'通过储存过程获取当前仓库当前产品的即时库存
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,小数不见了,
如果要保存小数,上面红色代码应该如何写?
谢谢
没有呀,定义的是float,储存过程中是下面这样的 --返回期末数量
DECLARE @qty FLOAT
SELECT @qty = ISNULL(@numS,0) + ISNULL(@num2,0);
--PRINT @qty
RETURN @qty;
返回前在后端print打开都是显示2.6,
到前端用一楼的代码显示时就变成2了
试试
SELECT @qty = ISNULL(@numS,0.0) + ISNULL(@num2,0.0);
……
cmd.Parameters.Add("@qty", 0F, False)
还是不可以,是不是前端设置接收返回参数那里只能接收整数,或者是要怎么设置一下才可以
百度了一下,RETURN 值的范围是 0 到 255。改为使用输出参数吧