mssql 变量之间的传值
时间:2011-12-19
来源:互联网
CREATE procedure [dbo].[OneGoods]
@year char(4)='',
@goods nvarchar(100)='',
@ageid varchar(10)='',
@ret int=0 output,
@RetStr nvarchar(500)='' output
as
DECLARE @getcount int
declare @temp varchar(10)
set @getcount=0
select @getcount= sum([count]) from outlog where date like (@year+'-11%') and goodsinfo =@goods and ageid=@ageid
if(@getcount is null)
begin
set @temp=@RetStr+'*0'
set @RetStr=@temp
end
else
begin
set @temp=@RetStr+'*'+CONVERT (nvarchar(100),@getcount )
set @RetStr=@temp
end
print @RetStr
C# 代码:
Comm.CommandText = "[OneGoods]";
Comm.CommandType = CommandType.StoredProcedure;
Comm.Parameters.AddWithValue("@year", in_Year.Trim());
Comm.Parameters.AddWithValue("@goods", in_Goods.Trim());
Comm.Parameters.AddWithValue("@ageid", Session["LoginAccount"].ToString().Trim());
Comm.Parameters.Add(new SqlParameter("@RetStr", SqlDbType.NVarChar, 500));
Comm.Parameters["@RetStr"].Direction = ParameterDirection.Output;
Comm.ExecuteNonQuery();
Tempstr = Comm.Parameters["@RetStr"].Value.ToString();
在mssql控制面板里传入参数执行后 输出的有值
但是在C#程序中传同样的值进去,返回的值却为空,请问是怎么回事呢?
作者: xjc04001 发布时间: 2011-12-19
作者: happyflystone 发布时间: 2011-12-19
少一个参数吧
去掉@ret 这个参数也不行
作者: xjc04001 发布时间: 2011-12-19
作者: fredrickhu 发布时间: 2011-12-19


我把@ret参数去掉了 还是不行
是不是 这种参数之前传值 不能这么写啊( set @temp=@RetStr+'*'+CONVERT (nvarchar(100),@getcount ))
作者: xjc04001 发布时间: 2011-12-19

作者: xjc04001 发布时间: 2011-12-19
我把@ret参数去掉了 还是不行
是不是 这种参数之前传值 不能这么写啊( set @temp=@RetStr+'*'+CONVERT (nvarchar(100),@getcount ))
作者: szstephenzhou 发布时间: 2011-12-19
作者: yanyuchonglou 发布时间: 2011-12-19
你这样试试,把SP里的参数赋一个定值返回,看能不能在前端得到,若能,则改SP;若不能则改前端C#。
定值keyi


作者: xjc04001 发布时间: 2011-12-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28