存储过程分页方法输出参数无法获取记录总数

bnc9595 2014-07-28 09:52:49

/// <summary>
/// 分页方法
/// </summary>
/// <param name="tblName">表名</param>
/// <param name="fldName">排序字段名</param>
/// <param name="strGetFields">读取的字段</param>
/// <param name="PageSize">页大小</param>
/// <param name="PageIndex">页索引</param>
/// <param name="orderType">排序方式,true=正序</param>
/// <param name="strWhere">where子句,不必加'where'</param>
/// <param name="Count">记录总数</param>
/// <returns></returns>
public static DataSet GetPageList(string tblName, string fldName, string strGetFields, int PageSize, int PageIndex, bool orderType, string strWhere, ref int Count)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@tblName",tblName),
new SqlParameter("@fldName",fldName),
new SqlParameter("@strGetFields",strGetFields),
new SqlParameter("@PageSize",PageSize),
new SqlParameter("@PageIndex",PageIndex),
new SqlParameter("@orderType",orderType?0:1),
new SqlParameter("@strWhere",strWhere),
new SqlParameter("@Count",Count)
};
pars[7].Direction = ParameterDirection.Output;

return RunProcedure("up_DataPage", pars, "ds");
}


存储过程执行完毕后,参数pars[7].Value得到记录总数了,可是Count还是1没有变化,在方法内赋值也不可以,不知道怎么样才能得到记录总数呢?
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bnc9595 2014-07-29
  • 打赏
  • 举报
回复
引用 2 楼 5653325 的回复:


/// <summary>
        /// 分页方法
        /// </summary>
        /// <param name="tblName">表名</param>
        /// <param name="fldName">排序字段名</param>
        /// <param name="strGetFields">读取的字段</param>
        /// <param name="PageSize">页大小</param>
        /// <param name="PageIndex">页索引</param>
        /// <param name="orderType">排序方式,true=正序</param>
        /// <param name="strWhere">where子句,不必加'where'</param>
        /// <param name="Count">记录总数</param>
        /// <returns></returns>
        public static DataSet GetPageList(string tblName, string fldName, string strGetFields, int PageSize, int PageIndex, bool orderType, string strWhere, out int Count)
        {
           Count=0;
            SqlParameter[] pars = new SqlParameter[]{
                new SqlParameter("@tblName",tblName),
                new SqlParameter("@fldName",fldName),
                new SqlParameter("@strGetFields",strGetFields),
                new SqlParameter("@PageSize",PageSize),
                new SqlParameter("@PageIndex",PageIndex),
                new SqlParameter("@orderType",orderType?0:1),
                new SqlParameter("@strWhere",strWhere),
                new SqlParameter("@Count",Count)
            };
            pars[7].Direction = ParameterDirection.Output;
            DataSet ds=new DataSet ();
            ds=RunProcedure("up_DataPage", pars, "ds");
            int.TryParse(pars[7].ToString(),out Count)
            return ds;
        }
上面调用这个函数的也把ref int Count 换成 out int Count 试试。
不行啊!
踏平扶桑 2014-07-29
  • 打赏
  • 举报
回复


/// <summary>
        /// 分页方法
        /// </summary>
        /// <param name="tblName">表名</param>
        /// <param name="fldName">排序字段名</param>
        /// <param name="strGetFields">读取的字段</param>
        /// <param name="PageSize">页大小</param>
        /// <param name="PageIndex">页索引</param>
        /// <param name="orderType">排序方式,true=正序</param>
        /// <param name="strWhere">where子句,不必加'where'</param>
        /// <param name="Count">记录总数</param>
        /// <returns></returns>
        public static DataSet GetPageList(string tblName, string fldName, string strGetFields, int PageSize, int PageIndex, bool orderType, string strWhere, out int Count)
        {
           Count=0;
            SqlParameter[] pars = new SqlParameter[]{
                new SqlParameter("@tblName",tblName),
                new SqlParameter("@fldName",fldName),
                new SqlParameter("@strGetFields",strGetFields),
                new SqlParameter("@PageSize",PageSize),
                new SqlParameter("@PageIndex",PageIndex),
                new SqlParameter("@orderType",orderType?0:1),
                new SqlParameter("@strWhere",strWhere),
                new SqlParameter("@Count",Count)
            };
            pars[7].Direction = ParameterDirection.Output;
            DataSet ds=new DataSet ();
            ds=RunProcedure("up_DataPage", pars, "ds");
            int.TryParse(pars[7].ToString(),out Count)
            return ds;
        }
上面调用这个函数的也把ref int Count 换成 out int Count 试试。
bnc9595 2014-07-29
  • 打赏
  • 举报
回复
在线等,没有人吗?
踏平扶桑 2014-07-29
  • 打赏
  • 举报
回复
int.TryParse(pars[7].ToString(),out Count) 少敲了一个pars[7].Value 话说这你都没调试出来吗?
bnc9595 2014-07-29
  • 打赏
  • 举报
回复
OK,搞定了 DataSet ds= RunProcedure("up_DataPage", pars, "ds"); Count=(int)pars[7].Value; return ds;

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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