存储过程中的output型返回值与return 的返回值

  在前段时间和老师做一个系统时,在mssql下面写存储过程时遇到output型返回值与return 的返回值的问题;
经过一番尝试算是明白了,拿出来和分享一下;
return 是mssql 里自定义的返回的关键字,他的使用比较简单
eg
  select * from student where dep=@dep
  return @@rowcount
  return @@rowcount返回影响的行数,
对于这种就可以使用返回,在sqlhelper中只需用cmd.Parameters["ReturnValue"].Value,用ReturnValue来取返回值
  而对于output型返回值 如果也用ReturnValue来去返回值是会出现异常的,而因当根据output的参数名来返回
eg
CREATE PROCEDURE sp_higheducation_articlerole_getcredbycondition
@CategoryID nvarchar(16),
@AuthorPlace nvarchar(16),
@grade int  output
 AS
select @grade=GetCred  from ArticleRole  where  CategoryID=@CategoryID and  AuthorPlace=@AuthorPlace
GO
在sqlhelper中
if (cmd.Parameters[grade].Value.ToString() == "")
            {
                return 0;
            }
            else
            {
                return int.Parse(cmd.Parameters[grade].Value.ToString());
            }
当然这是一个output型返回值,对于多个output型返回值则应填充到ds,dt中了

你可能感兴趣的:(return)