困扰:c#调用有返回值的存储过程(但结果无返回),帮忙看看哪里出错了

jayfox_001 2009-03-10 12:26:27
困扰多天还是解决不了这个问题!!麻烦大家帮忙看看!!

存储过程:
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却一直为空,想不明白是什么原因。麻烦大侠们帮忙指教一下!!谢谢了!!!!
...全文
86 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tukzer 2009-03-21
  • 打赏
  • 举报
回复
最好调试一下,如果其他条件都满足
很有可能在客户端调用oracle之前的参数处理上就已经出现了问题
如类型,长度等等,看看是否有什么异常

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧