asp.net 结合mysql存储过程进行分页代码

2019-05-12 05:29:23刘景俊

cmd.Parameters.Add("m_pageNo", MySqlDbType.Int32, 11);
cmd.Parameters.Add("m_perPageCnt", MySqlDbType.Int32, 11);
cmd.Parameters.Add("m_column", MySqlDbType.VarChar, 1000);
cmd.Parameters.Add("m_table", MySqlDbType.VarChar, 1000);
cmd.Parameters.Add("m_condition", MySqlDbType.VarChar, 1000);
cmd.Parameters.Add("m_orderBy", MySqlDbType.VarChar, 200);
cmd.Parameters.Add("m_totalCnt", MySqlDbType.Int32, 11);
cmd.Parameters["m_pageNo"].Value = pageNo;
cmd.Parameters["m_perPageCnt"].Value = perPage;
cmd.Parameters["m_column"].Value = columnList;
cmd.Parameters["m_table"].Value = tableName;
cmd.Parameters["m_condition"].Value = condition;
cmd.Parameters["m_orderBy"].Value = orderStr;
cmd.Parameters["m_totalCnt"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
adp.SelectCommand = cmd;
adp.Fill(dt);
totalCnt = int.Parse(cmd.Parameters["m_totalCnt"].Value.ToString());
}
pageCnt = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(totalCnt) / perPage));
if (pageNo > pageCnt)
{
pageNo = pageCnt;
}//如果当前页码大于总页数,则当前页为最后一页
//处理页码地址参数
string pageNumLink = string.Empty; //页码的链接地址
if (string.IsNullOrEmpty(url.Trim()))
{
pageNumLink = "<a href="?pageNo=";
}
else if (url.IndexOf('?') >= 0)
{
pageNumLink = "<a href="" + url + "&pageNo=";
}
else
{
pageNumLink = "<a href="" + url + "?pageNo=";
}
//上一页,下一页字符串赋值
string abovePage = pageNumLink + (pageNo-1).ToString()+ "">上一页</a>";
string nextPage = pageNumLink + (pageNo + 1).ToString() + "">下一页</a>";
if (pageNo == 1)
{
abovePage = string.Empty;
}//如果当前页为第一页,则不显示“上一页”字符串
if (pageNo == pageCnt)
{
nextPage = string.Empty;
}//如果当前页为最后一页,则不显示“下一页”字符串
pageInfo = new string[14];
pageInfo[0] = totalCnt.ToString(); //显示记录集总数
pageInfo[1] = pageCnt.ToString(); //显示总页数
pageInfo[2] = abovePage; //显示上一页
pageInfo[3] = nextPage; //显示下一页
int startIndex;
int endIndex;
startIndex = (pageNo / 10) * 10 + 1; //起始页
if (pageNo % 10 == 0)
{
startIndex = startIndex - 10;
}
endIndex = startIndex + 9; //结束页
if (endIndex > pageCnt)
{
endIndex = pageCnt;
}//如果结束页大于总页数,则结束页为最后一页值
int pageIndex = 4;
for (int i = startIndex; i <= endIndex; i++)
{
string pageValue = pageNumLink + i.ToString() + "">" + i.ToString() + "</a>";
if (i == pageNo)
{
pageValue = i.ToString();
}
pageInfo[pageIndex] = pageValue;
pageIndex++;
}
return dt;
}