一个c#.net存储过程版本的分页,支持百万数据分页
2007-09-19 13:56
387 查看
protected void dataBind() {
int page = 1;
if (Request.QueryString["page"] != null){
page = Convert.ToInt32(Request["page"]);
}
if (Request.Form["page"] != null){
page = Convert.ToInt32(Request.Form["page"]);
}
int myPageSize = 20;
SqlConnection conn = new SqlConnection(dbTool.myConnStr);
SqlCommand cmd = new SqlCommand("p_page", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Tables", SqlDbType.VarChar, 50);
cmd.Parameters["@Tables"].Value = "testTable";
cmd.Parameters.Add("@PrimaryKey", SqlDbType.VarChar, 50);
cmd.Parameters["@PrimaryKey"].Value = "id";
cmd.Parameters.Add("@Sort", SqlDbType.VarChar, 50);
cmd.Parameters["@Sort"].Value = "id asc";
cmd.Parameters.Add("@CurrentPage", SqlDbType.Int, 4);
cmd.Parameters["@CurrentPage"].Value = page;
cmd.Parameters.Add("@PageSize", SqlDbType.Int, 4);
cmd.Parameters["@PageSize"].Value = myPageSize;
cmd.Parameters.Add("@Fields", SqlDbType.VarChar, 50);
cmd.Parameters["@Fields"].Value = "id,username";
cmd.Parameters.Add("@Filter", SqlDbType.VarChar, 50);
cmd.Parameters["@Filter"].Value = "id>1000 and id<10000";
cmd.Parameters.Add("@Group", SqlDbType.VarChar, 50);
cmd.Parameters["@Group"].Value = "";
cmd.Parameters.Add("@TotalPage", SqlDbType.Int, 4);
cmd.Parameters["@TotalPage"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@TotalRecord", SqlDbType.Int, 4);
cmd.Parameters["@TotalRecord"].Direction = ParameterDirection.ReturnValue;
conn.Open();
//先取得返回值
cmd.ExecuteNonQuery();
int totalPage, totalRecord;
totalPage = Convert.ToInt32(cmd.Parameters["@TotalPage"].Value);
totalRecord = Convert.ToInt32(cmd.Parameters["@totalRecord"].Value);
//再取得返回记录集
SqlDataReader sdr = cmd.ExecuteReader();
GridView1.DataSource = sdr;
GridView1.DataBind();
cmd.Dispose();
conn.Dispose();
tools mytool = new tools(Response, Request);
/*
* 功能:PageLink显示分页导航
* totalCount:总记录数
* totalPage:总页数
* Page:页码
* PerPageSize:每页显示记录数
* GroupSizes:每组分页显示的页码数
* PageArgu:分页参数
* ShowGoto:是否显示跳转
*/
lblPageLink.Text = mytool.PageLink(totalRecord, totalPage, page, myPageSize, 3, "page",true);
mytool.Dispose();
}
int page = 1;
if (Request.QueryString["page"] != null){
page = Convert.ToInt32(Request["page"]);
}
if (Request.Form["page"] != null){
page = Convert.ToInt32(Request.Form["page"]);
}
int myPageSize = 20;
SqlConnection conn = new SqlConnection(dbTool.myConnStr);
SqlCommand cmd = new SqlCommand("p_page", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Tables", SqlDbType.VarChar, 50);
cmd.Parameters["@Tables"].Value = "testTable";
cmd.Parameters.Add("@PrimaryKey", SqlDbType.VarChar, 50);
cmd.Parameters["@PrimaryKey"].Value = "id";
cmd.Parameters.Add("@Sort", SqlDbType.VarChar, 50);
cmd.Parameters["@Sort"].Value = "id asc";
cmd.Parameters.Add("@CurrentPage", SqlDbType.Int, 4);
cmd.Parameters["@CurrentPage"].Value = page;
cmd.Parameters.Add("@PageSize", SqlDbType.Int, 4);
cmd.Parameters["@PageSize"].Value = myPageSize;
cmd.Parameters.Add("@Fields", SqlDbType.VarChar, 50);
cmd.Parameters["@Fields"].Value = "id,username";
cmd.Parameters.Add("@Filter", SqlDbType.VarChar, 50);
cmd.Parameters["@Filter"].Value = "id>1000 and id<10000";
cmd.Parameters.Add("@Group", SqlDbType.VarChar, 50);
cmd.Parameters["@Group"].Value = "";
cmd.Parameters.Add("@TotalPage", SqlDbType.Int, 4);
cmd.Parameters["@TotalPage"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@TotalRecord", SqlDbType.Int, 4);
cmd.Parameters["@TotalRecord"].Direction = ParameterDirection.ReturnValue;
conn.Open();
//先取得返回值
cmd.ExecuteNonQuery();
int totalPage, totalRecord;
totalPage = Convert.ToInt32(cmd.Parameters["@TotalPage"].Value);
totalRecord = Convert.ToInt32(cmd.Parameters["@totalRecord"].Value);
//再取得返回记录集
SqlDataReader sdr = cmd.ExecuteReader();
GridView1.DataSource = sdr;
GridView1.DataBind();
cmd.Dispose();
conn.Dispose();
tools mytool = new tools(Response, Request);
/*
* 功能:PageLink显示分页导航
* totalCount:总记录数
* totalPage:总页数
* Page:页码
* PerPageSize:每页显示记录数
* GroupSizes:每组分页显示的页码数
* PageArgu:分页参数
* ShowGoto:是否显示跳转
*/
lblPageLink.Text = mytool.PageLink(totalRecord, totalPage, page, myPageSize, 3, "page",true);
mytool.Dispose();
}
相关文章推荐
- 一个c#.net存储过程版本的分页,支持百万数据分页
- 一个c#.net存储过程版本的分页,支持百万数据分页
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- c# websocket 服务端,客户端 兼容低版本IE,支持超长数据传输 附源码
- 发布一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 编写了一个支持firefox和ie的javascript+xml进行数据分页的程序
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- 一个分页存储过程,Sql2005及以上版本支持(求更高效的分页算法)
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据分页功能改进、数据权限改进
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个带有页码的通用ASP.NET分页类,支持数据库分页(C#)
- 发布一个高效的数据分页的存储过程 可以轻松应付百万数据