存储过程:
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 @RetStrC# 代码:
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#程序中传同样的值进去,返回的值却为空,请问是怎么回事呢?
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 @RetStrC# 代码:
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#程序中传同样的值进去,返回的值却为空,请问是怎么回事呢?
是不是 这种参数之前传值 不能这么写啊( set @temp=@RetStr+'*'+CONVERT (nvarchar(100),@getcount ))