sql存储过程返回数据的同时返回一个输出参数在asp.net后台该怎么接收这两个值

sql存储过程返回数据的同时返回一个输出参数在asp.net后台该如何接收这两个值
ALTER PROCEDURE [dbo].[_PianPaging]
-- Add the parameters for the stored procedure here
@pageIndex int, --第几页
@pageSize  int, --每页显示条数
@pageNum int output --总页数
AS
BEGIN
declare @num int
begin
 select @num=COUNT(*) from tbTeacherPlan
  if(@num<=@pageSize)
   begin
    set @pageNum=1
    select * from tbTeacherPlan
   end
  else
  begin
   declare @b int 
    set @b=@num%@pageSize
    if(@b=0)
    set @pageNum=@num/@pageSize
    else
    set @pageNum=(@num/@pageSize+1) --这是第一个要得到的结果
    declare @SQL nvarchar(1000)
    set @SQL=' select top ' + cast(@pageSize as nvarchar(5))+ ' * from tbTeacherPlan where tpId not in (select top ' + cast((@pageIndex*@pageSize)as nvarchar(5))+ ' tpId from tbTeacherPlan)'
    Exec(@SQL)--这是的二个要得到的结果
  end
 end
END

在用sqlhelp中的方法读执行后该如何获取这两个结果作为返回值
asp.net sql sqlhelp 存储

------解决方案--------------------
调用的时候不是添加了一些SQl参数吗

        /// <summary>
        /// 执行存储过程,如需返回结果(有output的参数),则将结果返回
        /// </summary>
        /// <param name="strProcName">存储过程名</param>
        /// <param name="strConn">连接字符串</param>
        /// <param name="Params">参数集合,参考SqlParam类</param>
        /// <returns>按参数顺序返回结果,失败返回null</returns>
        static public object[] ExecuteProcedureWithOutput(string strProcName, string strConn, params SqlParameter[] Params)
        {
            SqlConnection conn = new SqlConnection(strConn);

            try
            {
                SqlCommand cmd = new SqlCommand();

                cmd.CommandText = strProcName;
                cmd.CommandType = CommandType.StoredProcedure;

                int nOutputParametersCount = 0;
                foreach (SqlParam p in Params)
                    cmd.Parameters.Add(sqlParam);