存储过程:
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 [email protected] and [email protected]
if(@getcount is null)
begin
set @[email protected]+'*0'
set @[email protected]
end
else
begin
set @[email protected]+'*'+CONVERT (nvarchar(100),@getcount )
set @[email protected]
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#程序中传同样的值进去,返回的值却为空,请问是怎么回事呢?
------解决方案--------------------
少一个参数吧
------解决方案--------------------
@ret参数呢?
------解决方案--------------------
可以这样写的,在mssql手动输入参数是可以的吧
------解决方案--------------------
你这样试试,把SP里的参数赋一个定值返回,看能不能在前端得到,若能,则改SP;若不能则改前端C#。