困扰:c#调用有返回值的存储过程(但结果无返回),帮忙看看哪里出错了
困扰多天还是解决不了这个问题!!麻烦大家帮忙看看!!
存储过程:
ALTER PROCEDURE [dbo].[kspj_get_assessgroupstage]
@projectid varchar(50),
@fieldname varchar(50),
@result varchar(1) OUTPUT
AS
declare
@sql nvarchar(max),
@param nvarchar(max),
@stage int
BEGIN
set @sql='select @out_stage=stage from TPJ_Assessgroup_'+@projectid+' where fieldname='''+@fieldname+''''
set @param='@out_stage int output'
exec sp_executesql @sql,@param,@out_stage=@stage output
set @result=Convert(varchar(1),@stage)
print @result
END
c#代码段(调用SQLHELPER)
zgtemplateid = Session["zgtemplateid"].ToString().Trim();
fieldname = Session["fieldname"].ToString().Trim();
SqlParameter sqlresult = SQLHelper.MakeOutParam("result", SqlDbType.VarChar, 1);
SqlParameter[] arrpram = { SQLHelper.MakeInParam("projectid", SqlDbType.VarChar, 50, zgprojectid),
SQLHelper.MakeInParam("fieldname",SqlDbType.VarChar,50,fieldname),
sqlresult};
SQLHelper.RunProc("kspj_getassessgroupstage", arrpram);
Response.Write(web_data.return_script("alert('+" + Convert.ToString(zgprojectid) + "+')"));
Response.Write(web_data.return_script("alert('+" + Convert.ToString(fieldname) + "+')"));
if (sqlresult.Value==null)
{
Response.Write(web_data.return_script("alert('null')"));
}
if (Convert.ToString(sqlresult.Value) == "2")
{
Response.Write(web_data.return_script("alert('2')"));
}
在存储过程中,用print @result是可以得到2的,但在程序中调用sqlresult.value却一直为空,想不明白是什么原因。麻烦大侠们帮忙指教一下!!谢谢了!!!!