asp.net—执行分页存储过程的函数

分页存储过程的T—SQL在之前的文章中已经跟大家分享过了

现在就对应 分页存储过程  跟大家分享下在.net中执行的函数。

该文章是希望给予新手一些编程过程中的帮助(大神可以帮忙指出代码中的不妥之处)

public static DataTable PageQuery(string sqlconn, CommandType command_type, PageSearch DbConnection, ref Int32 totalCount, bool bNeedCloseConn = true)
{
    SqlConnection cn = null;
    SqlCommand Mcmd;
    DataTable dt = new DataTable();
    try
    {
        SqlParameter[] para = new SqlParameter[10];
        para[0] = new SqlParameter("@tab", DbConnection.DbTable);
        para[1] = new SqlParameter("@PrimaryKey", DbConnection.DbPrimaryKey);
        para[2] = new SqlParameter("@strFld", DbConnection.DbFiles);
        para[3] = new SqlParameter("@strWhere", DbConnection.Where);
        para[4] = new SqlParameter("@PageIndex", DbConnection.PageIndex);
        para[5] = new SqlParameter("@PageSize", DbConnection.PageSize);
        para[6] = new SqlParameter("@Sort", DbConnection.Sort);
        para[7] = new SqlParameter("@Order", DbConnection.Order);
        para[8] = new SqlParameter("@IsDistinct", DbConnection.IsDistinct);
        para[9] = new SqlParameter("@TotalCount", SqlDbType.Int);
        para[9].Direction = ParameterDirection.Output;
        cn = comm_fun.get_cn(sqlconn);
        cn.Open();
        // 声明哪个执行存储过程
        Mcmd = new SqlCommand("pro_common_pageList", cn);
        Mcmd.CommandType = command_type;
        Mcmd.Parameters.AddRange(para);
        if (cn.State != ConnectionState.Open)
            cn.Open();
        // 获取分页数据集
        SqlDataReader sqldr = Mcmd.ExecuteReader();
        dt.Load(sqldr);
        sqldr.Close();
        // 返回总记录数
        totalCount = para[9].Value;
        if (bNeedCloseConn == true)
        {
            Mcmd.Dispose();
            cn.Close();
        }
        Mcmd.Parameters.Clear();      // 清掉参数以便下次使用
        return dt;
    }
    catch (Exception ex)
    {
        return dt;
    }
    finally
    {
        comm_fun.CloseConnection(cn);
    }
}
    
View Code

注:上述代码中 “comm_fun” 是封装好的SqlHellper类。"pro_common_pageList"是存储过程名称

原文地址:https://www.cnblogs.com/witeem/p/9109784.html