public DataTable ProcGetPagedData(string procName, int pageIndex, int pageSize, out int pageCount, out int rowCount)
{
SqlConnection conn = new SqlConnection(connStr);
pageCount = 0;
rowCount = 0;
SqlDataAdapter sda = new SqlDataAdapter(procName, conn);
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@pi",pageIndex),
new SqlParameter("@ps",pageSize),
new SqlParameter("@pc",pageCount),
new SqlParameter("@rc",rowCount)
};
paras[2].Direction = ParameterDirection.Output;
paras[3].Direction = ParameterDirection.Output;
sda.SelectCommand.Parameters.AddRange(paras);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
sda.Fill(dt);
pageCount = Convert.ToInt32(paras[2].Value); //接收存储过程的输出参数值
rowCount = Convert.ToInt32(paras[3].Value);
return dt;
}
本文介绍了一种使用存储过程进行分页查询的方法。通过创建一个公共的数据表过程(DataTableProcGetPagedData),该方法接收存储过程名称、当前页码、每页数量等参数,并返回指定页的数据表。此外,还输出总页数和记录总数。
8113

被折叠的 条评论
为什么被折叠?



