CREATE PROCEDURE ups_groupInfoadd 
@ParentGroupID int, 
@GroupName varchar(20), 
@Orderby int, 
@Re varchar(20) 
AS 
declare @groupid varchar(20) 
declare @GroupPower varchar(200) 
begin 
if(not exists(select * from GroupInfo where GroupName=@GroupName)) 
begin 
set select @Grouppower=GroupPower from GroupInfo where GroupID=@ParentGroupID insert into GroupInfo 

ParentGroupID, 
GroupName, 
orderby, 
Re 

values 

@ParentGroupID, 
@GroupName, 
@Orderby, 
@Re 

set select @GroupID=GroupID from GroupInfo where GroupName=@GroupName update GroupInfo 
set GroupPower=@GroupPower+@GroupID+';' 
where GroupName=@GroupName 
return 1 --插入成功返回1 
end 
else 
begin 
return 0 --插入失败返回0 
end 
end 
GO 
--------------------------------- 
存储过程
插入成功返回1 
失败就返回0,请问C#里,使用该存储过程,怎么才能得到返回的值(return 0)/(return 1)?,或者说怎么判断插入成功/失败,或者修改一下?我的意思就是成功就返回一个值,判断成功和失败
---------------------------------- 
没改存储过程之前,我的调用存储过程的程序:
        public bool GroupAdd() 
        { 
            SqlParameter[] Params = new SqlParameter[4]; 
            Database db = new Database(); 
            Params[0] = db.MakeInParam("@ParentGroupID", SqlDbType.Int,4,ParentGroupID); 
            Params[1] = db.MakeInParam("@GroupName", SqlDbType.VarChar,20,GroupName); 
            Params[2] = db.MakeInParam("@Orderby", SqlDbType.Int,4,Orderby); 
            Params[3] = db.MakeInParam("@Re", SqlDbType.VarChar, 20, Re);             int Count = -1; 
            Count = SqlHelper.ExecuteNonQuery(db.ConnectionString, CommandType.StoredProcedure, "ups_groupInfoadd", Params); 
            if (Count > 0) 
                return true; 
            else return false;         } 

解决方案 »

  1.   

    SqlHelper不太熟悉,直接用ADO.NET写的话返回值是个隐藏的参数:        cmd.Parameters.Add("@RETURN_VALUE",SqlDbType.Int);
            cmd.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue;
      

  2.   

    要看你这个SqlHelper的ExecuteNonQuery怎么写的了一般而言存储过程的参数要放在所有的参数的第一个,然后指明参数的输出方向(同一楼),最好是在连接关闭后去得到这个参数的值int i =  Convert.ToInt32(cmd.Parameters["@RETURN_VALUE"].Value);
      

  3.   

            cmd.Parameters.Add("@RETURN_VALUE",SqlDbType.Int); 
            cmd.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue;