webform中实现SQL Sever2008数据库数据分页查询
1
分页
1.1
数据库中存储过程
已知 当前页 pageIndex 页容量 pageSize
求 总页数 pageCount 和 当前页的数据
//例子:
create proc usp_Example
@pageIndex int,---------参数之间用 , 分割 最后一个参数后 必须没有 ,
@pageSize int,
@pageCount int output
as
begin
declare @count int
select @count=count(*) from <tableName>
set @pageCount=ceiling(@count*1.0/@pageSize)
select * from
(select *,row_number() over(order by <columnName> asc/desc) as 编号 from <tableName>) tempTable
where 编号 between (@pageIndex -1)*@pageSize+1 and @pageIndex*@pageSize
and
--测试
declare @count int
exec usp_Example 1,2,@count output
print @count
1.2 SQLHelper中
private static DataTable ExecuteDataTable(string sql,CommandType ct,params SqlParameter[] param)
{
using(SqlConnection conn = new SqlConnection(connStr))
{
using(SqlCommand cmd= new SqlCommand(sql,conn))
{
cmd.Parameters.AddRange(param);
cmd.CommandType=ct;
conn.Open();
try{
using(SqlDataAdapter da = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
}catch(Exception ex)
{
throw ex;
}
}
}
}
1.3 DAL 中
public List<Model> GetModelsByProc(int pageIndex,int pageSize,out int pageCount)
{
SqlParameter[] param={
new SqlParameter("@pageIndex",SqlDbType.Int){Value=pageIndex},
new SqlParameter("@pageSize",SqlDbType.Int){Value=PageSize},
new SqlParametre("@pageCount",SqlDbType.Int){Direction=ParameterDirection.OutPut}
};
DataTable dt =SqlHelper.ExecuteDataTable("ProcName",CommandType.StoredProcdure,param);
pageCount=param[2].Value;
List<Model> list=new List<Model>();
foreach(DataRow row in dt.Rows)
{
list.Add(row);
}
return list;
}
1.4 BLL
public List<Model> GetModelsByProc(int pageIndex,int pageSize,out int pageCount)
{
return new DAL().GetModelsByProc(pageIndex,pageSize,out pageCount);
}
1.5 UI
.CS界面
protected string table;
private int pageIndex=1;//默认第一页
private int pageSize=3;//默认每页显示3条数据 可从前台 获取进行设定
private int pageCount;//总页数
protected string pageBar;
//生成表格
private string CreateDataTable()
{
List<Model> list=new BLL().GetModelsByProc(pageIndex,pageSize,out pageCount);
StringBuilder sb=new StringBuilder();
sb.Append("<table>");
sb.Append("<tr><th>Column1</th><th>Column2</th><th>Column3</th></tr>");
for(int i=0;i<list.Count;i++)
{
Model model=List[i];
sb.Append("<tr>");
sb.Append("<td><a href='ModelDetails.aspx?id="+model.ID+"'>modelContent1</a></td>");
sb.Append("<td><a href='MySelf.aspx?id="+model.ID+"'@action=delete>modelContent2<a></td>");
sb.Append("<td><a href='WaterMaker.ashx?id="+model.ID+"'>modelContent2</a></td>");
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
//创建分页栏
private string CreatePageBar()
{
StringBuilder sb =new StringBuilder();
sb.Append("<a href='MySelf.aspx?page=1'>首页</a>");
int num=pageIndex;
num=num>1?num-1:1;
sb.Append(" <a href='MySelf.aspx?page="+num+"'>上一页</a>");
num=num<pageCount?num+1:pageCount;
sb.Append(" <a href='MySelf.aspx?page="+num+"'>下一页</a>");
sb.Append(" <a href='MySelf.aspx?page="+pageCount+"></a>");
sb.Append(" "+pageIndex+"/"+pageCount+"");
return sb.ToString();
}
//页面加载
protected void Page_Load(object sender,EventArgs e)
{
//每次加载都执行
string page=Request.QueryString["page"];
if(int.tryParse(page,out pageIndex))
{
pageIndex=1;
}
table=CreateDataTable();
pageBar=CreatePageBar();
}
1.6 .aspx 前台页面
<%=table%>
<%-pageBar%>
webform中实现SQL Sever2008数据库数据分页查询的更多相关文章
- [.NET] SQL数据分页查询
[.NET] SQL数据分页查询 程序下载 范例下载:点此下载 原始码下载:点此下载 NuGet封装:点此下载 数据查询 开发系统时,使用C#执行SQL查询指令,就可以从SQL数据库里查询所需数据. ...
- Eclipse中连接Sql Sever2008 -----转自Yogurshine
Eclipse中连接Sql Sever2008 -----转自Yogurshine 一 SQl Sever服务器配置 1我之前已经安装好SQL Sever 2008R2.(注意:安装一遍未成功时,一定 ...
- 访问内网中的sql server数据库的简便方法
前言: 有时候我们要访问局域网内的 sql server服务器,比如测试环境数据库在公司内网,回到家或在客户现场要连接内网中的数据库 第一步:假如可以连接局域网的数据库 192.168.150.129 ...
- QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据
QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 參考链接: http:// ...
- MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法
在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...
- MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)
http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通 ...
- 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)
分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...
- MySql实现分页查询的SQL,mysql实现分页查询的sql语句(转)
http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通 ...
- Oracle、MySql、SQLServer 数据分页查询
最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借 ...
随机推荐
- mysql function
mysql 自定义函数的使用 先查看函数功能是否开启:show variables like '%func%'; 若是未开启则:SET GLOBAL log_bin_trust_function_cr ...
- Linux Perf Probes for Oracle Tracing
Luca Canali on 21 Jan 2016 Topic: this post is about Linux perf and uprobes for tracing and profilin ...
- http://blog.csdn.net/zh521zh/article/details/52687922
http://blog.csdn.net/zh521zh/article/details/52687922
- SilverLight:布局(3)StackPanel 对象
ylbtech-SilverLight-Layout: 布局(3)StackPanel 对象 A, Nesting Layout Containers(内嵌布局容器) B, StackPanel(队列 ...
- pandas常见函数详细使用
groupby函数 pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作,根据一个或多个键(可以是函数.数组.Series或DataFrame ...
- yii框架:CDbConnection failed to open the DB connection: could not find driver的解决的方法
这个问题是由于php中缺少pdo mysql造成的. 解决方法是为php加入此扩展.前往你最早的php安装文件,进入ext/pdo_mysql/文件夹下,然后./configure --with-ph ...
- phonegap工程中修改app的名字
针对phonegap比较高的版本,我的是6.4.0. 在phonegap工程中,当添加了iOS和android平台或多个平台后,工程进行了开发,然后觉得app的名字想修改一下(比如在手机上显示的app ...
- 近期微信上非常火的小游戏【壹秒】android版——开发分享
近期在朋友圈,朋友转了一个html小游戏[壹秒],游戏的规则是:用户按住button然后释放,看谁能精准地保持一秒的时间.^_^刚好刚才在linuxserver上调试程序的时候server挂了,腾出点 ...
- JSP自己定义标签继承哪个类
JSP自己定义标签继承哪个类 解:JSP自己定义标签继承TagSupport
- Odoo configuration items
[options] addons_path = /opt/odoo/server/openerp/addons,/opt/odoo/server/addons admin_passwd = admin ...