数据库代码:
- alter proc Page
- (
- @size int , --每页数量
- @index int , --第几页
- @countPage int output, --总页数
- @count int output --总记录数
- )
- as
- declare @sql varchar(1000)
- select @count=count(*) from student
- if @count%@size =0
- begin
- set @countPage=@count/@size
- end
- else
- begin
- set @countPage=@count/@size+1
- end
- if @index=1
- begin
- set @sql='select top '+str(@size)+' * from student'
- end
- else
- begin
- set @sql='select top '+str(@size)+' * from student where s_id >
- (
- select max(s_id) from student where s_id in
- (
- select '+str((@index-1)*@size)+' s_id from student
- )
- )'
- end
- exec (@sql)
- exec Page 5,8,0,0
分页方法:
- public string page(int index)
- {
- int SIZE = 10;
- int COUNTPAGE = 0;
- int COUNT = 0;
- string sql = "Page";
- SqlParameter[] paramerter = new SqlParameter[4];
- paramerter[0] = new SqlParameter("@size",SIZE);
- paramerter[1] = new SqlParameter("@index",index);
- paramerter[2] = new SqlParameter("@countPage",COUNTPAGE);
- paramerter[3] = new SqlParameter("@count",COUNT);
- paramerter[2].Direction = ParameterDirection.Output;
- paramerter[3].Direction = ParameterDirection.Output;
- DataTable dt = SQLHelp.ExecuteData(sql, paramerter, true).Tables[0];
- int countPage = Convert.ToInt32(paramerter[2].Value);
- int count = Convert.ToInt32(paramerter[3].Value);
- System.Text.StringBuilder sbTable = new System.Text.StringBuilder();
- sbTable.Append("<table style='width:50%;border:solid 1px black;'>");
- sbTable.Append("<tr><td>学号</td><td>姓名</td><td>性别</td></tr>");
- foreach (DataRow row in dt.Rows)
- {
- sbTable.Append("<tr>");
- sbTable.AppendFormat("<td>{0}</td>", row["s_id"]);
- sbTable.AppendFormat("<td>{0}</td>", row["s_name"]);
- sbTable.AppendFormat("<td>{0}</td>", row["s_sex"]);
- sbTable.Append("</tr>");
- }
- sbTable.Append("</table><br/>");
- sbTable.AppendFormat("总记录数为{0}",COUNT);
- sbTable.AppendFormat("现在是第{0}/{1}",index,countPage);
- sbTable.AppendFormat("<a href='#' onclick=/"aclick('{0}')/">首页</a>", 1);
- sbTable.AppendFormat("<a href='#' onclick=/"aclick('{0}')/">上页</a>", (index == 1) ? 1 : index - 1);
- sbTable.AppendFormat("<a href='#' onclick=/"aclick('{0}')/">下页</a>", (index ==COUNT) ? COUNT : index + 1);
- sbTable.AppendFormat("<a href='#' onclick=/"aclick('{0}')/">尾页</a>", countPage);
- return sbTable.ToString();
- }