分页的存储过程:
drop proc LoadPageMain create Proc LoadPageMain
@pageIndex int,
@pageSize int,
@count int out
as
select top(@pageSize) * from dbo.MyStudent
where Fid not in
(
    select top(@pageSize*(@pageIndex-1)) Fid
    from dbo.MyStudent
    order by Fid
)
order by Fid
select @count=COUNT(1) from dbo.MyStudent DAL层调用分页存储过程:  public List<Model.MyStudent> getPagedList(int pageIndex, int pageSize, out int count)
        {
            List<Model.MyStudent> modelList = new List<Model.MyStudent>();           //创建最终要返回的model 的 List集合对象             string connStr = "server=.;database=CCDB;uid=sa;pwd=130988825";             using (SqlConnection conn = new SqlConnection(connStr))
            {
                using (SqlCommand cmd = new SqlCommand())                           //创建command对象
                {
                    cmd.Connection = conn;                                 
                    cmd.CommandType = CommandType.StoredProcedure;                  设置command 对象的type属性
                    cmd.CommandText = "LoadPageMain";                //指定相应的存储过程                     cmd.Parameters.Add(new SqlParameter("@pageIndex",pageIndex));    //为存储过程添加参数
                    cmd.Parameters.Add(new SqlParameter("@pageSize",pageSize));
                    SqlParameter outCount = new SqlParameter("@count",SqlDbType.Int);     //创建将要输出的参数,并添加到参数集合中
                    outCount.Direction = ParameterDirection.Output;
                    cmd.Parameters.Add(outCount);                     conn.Open();                     using (SqlDataAdapter sda = new SqlDataAdapter(cmd))             //用SqlDataReader 对象回去数据,不用担心conn断开的问题
                    {
                        DataSet ds = new DataSet();       
                        sda.Fill(ds);           //获取存储过程返回的数据集                         count = (int)outCount.Value;         // 注意:获取 存储过程输出的参数值                         foreach (DataRow row in ds.Tables[0].Rows )              
                        {
                            Model.MyStudent model = new Model.MyStudent();                                            model.FName = Convert.ToString(row[1]);
                            model.FAge = Convert.ToInt32(row[2]);
                            model.FGender = Convert.ToString(row[3]);
                            model.FMath = row[4] is DBNull?null: (int?)Convert.ToInt32(row[4]);
                            model.FEnglish = Convert.ToInt32(row[5]);
                            model.FClassId = Convert.ToInt32(row[6]);
                            model.FBirthday = Convert.ToDateTime(row[7]);                             modelList.Add(model);
                        }
                    }                 }
            }
            return modelList;
        } aspx页面输出分页的方式:     在后台拼接字符串(数据输出的、分页连接的)输出到前台,后台通过前台传来的pageIndex、pageSize参数来动态改变数据  protected void Page_Load(object sender, EventArgs e)
        {
            int count = 0;
            int pageIndex = Request["pageIndex"]==null?1:Convert.ToInt32(Request["pageIndex"]);
            int pageSize = Request["pageSize"]==null?20:Convert.ToInt32(Request["pageSize"]);
   
            BLL.MyStudent bll_mystudent = new BLL.MyStudent();
            List<Model.MyStudent> modelList= bll_mystudent.getPagedList(pageIndex, pageSize, out count);             StringBuilder sb = new StringBuilder();
            for (int i = 0; i < modelList.Count; i++)
            {
                sb.Append(string.Format("<tr>  <td>" + modelList[i].FName + "</td> <td>" + modelList[i].FAge + "</td> <td>" + modelList[i].FGender + "</td> <td>" + modelList[i].FMath  + "</td> <td>" + modelList[i].FEnglish + "</td> <td>" + modelList[i].FClassId + "</td> <td>" + modelList[i].FBirthday + "</td> <td>修改 删除 详情</td>    </tr>"));
            }
            trBody = sb.ToString();             int pageCount=(count-1)/pageSize+1;
            StringBuilder sbFY = new StringBuilder();
            sbFY.Append("<a href='?pageSize=20&pageIndex=1'>上一页</a> ");
            for (int i = 0; i < pageCount; i++)
            {
                sbFY.Append(string.Format("<a href='?pageSize=20&pageIndex={0}'>{0}</a>&nbsp;&nbsp;&nbsp;", i, i));
            }
            sbFY.Append("<a href='?pageSize=20&pageIndex=1'>下一页</a> ");
            strFY = sbFY.ToString();
        }

C#调用存储过程实现分页(个人代码笔记)的更多相关文章

  1. MyBatis之四:调用存储过程含分页、输入输出参数

    在前面分别讲解了通过mybatis执行简单的增删改,多表联合查询,那么自然不能缺少存储过程调用,而且还带分页功能. 注意:表结构参见上篇讲解联合查询的表. 一.查询某班级以及该班级下面所有学生的记录 ...

  2. Ibatis调用存储过程实现增删改以及分页查询

    1.Ibatis实现增删改操作很简单了,通常我是将某一模块的增删改功能写在一个存储过程里,通过一个标识符去区分执行增加还是修改抑或删除操作. statement: <!-- 存储过程:实现学生的 ...

  3. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

  4. Sybase·调用存储过程并返回结果

    最近项目要用Sybase数据库实现分页,第一次使用Sybase数据库,也是第一次使用他的存储过程.2个多小时才调用成功,在此记录: 项目架构:SSM 1.Sybase本身不支持分页操作,需要写存储过程 ...

  5. [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. 我也谈谈 代码调用存储过程超时,SQL Server Management Studio里运行很快的问题

    最近遇到了一个问题就是 一个执行速度很快的存储过程,在代码中调用的时候却超时了. 后来看到了两篇文章: 其中一篇是这样介绍的 今天同事用代码调用存储过程时超时,在SQL Server Manageme ...

  7. ADO.NET笔记——调用存储过程

    相关知识: 在ADO.NET访问SQL Server时,鼓励使用存储过程取代常规的SQL语句. 存储过程有下列优点: 存储过程中的SQL语句将会经过预先的解析和编译,然后存放在数据库服务器上行.调用的 ...

  8. MyBatis学习笔记(六)——调用存储过程

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4270352.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据 ...

  9. MySQL学习笔记:调用存储过程或函数报1418错误

    问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DE ...

随机推荐

  1. Apache+php+mysql+phpadmin搭建

    一,准备工具. httpd-2.4.12-win32-VC9.zip php-5.4.40-Win32-VC9-x86.zip phpMyAdmin-4.2.13.2-all-languages my ...

  2. 高级UNIX环境编程

    常规文件 只有索引节号(i-number,是一批i-node的索引),i-node不含文件名及数据字节,包括文件类型,链接数量,uid,gid,访问权限,字节数,最后访问时间,最后修改时间,信息节点最 ...

  3. wchar_t是内置还是别名(亲测有效:wchar_t在windows下是16位整数的别名,在linux等平台下是32位整数的别名。MSVC2008开始默认是/Zc:wchar_t)

    接前一篇C++ ABI之名字改编(以Qt为例),继续看看C++名字改编相关的问题. 问题 MSVC 有一对选项/Zc:wchar_t- 与 /Zc:wchar_t控制wchar_t 于是 wchar_ ...

  4. Apache BeanUtils 1.9.2 官方入门文档

    为什么需要Apache BeanUtils? Apache BeanUtils 是 Apache开源软件组织下面的一个项目,被广泛使用于Spring.Struts.Hibernate等框架,有数千个j ...

  5. fedora 下安装 文泉驿正黑体

    1. 可以到文泉驿正黑体的 主页 http://wenq.org/wqy2/index.cgi?%E9%A6%96%E9%A1%B5 最好能去官网表示一下支持 2. 也可以直接使用命令 :  sudo ...

  6. BZOJ 1632: [Usaco2007 Feb]Lilypad Pond

    题目 1632: [Usaco2007 Feb]Lilypad Pond Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 390  Solved: 109[ ...

  7. JAVA中IO和异常处理练习

    1.SystemI\O练习:1)通过键盘输入若干字符,并通过显示器输出:2)定义一个静态方法validOrNot()用于对输入的字符进行合法性校验,若包含非英文字符,则抛出IllegalStringE ...

  8. HtmlAgilityPack 抓取页面的乱码处理

    HtmlAgilityPack 抓取页面的乱码处理 用来解析 HTML 确实方便.不过直接读取网页时会出现乱码. 实际上,它是能正确读到有关字符集的信息,怎么会在输出时,没有取到正确内容. 因此,读两 ...

  9. android 中的 ViewPager+ Fragment

    android的Viewpager 的各种经常的用法,朋友问我要过,所以就稍微总结一下, ViewPager + Fragment 经常用到  代码是从   actionbarsherlock 中提取 ...

  10. CoinChange

    题目 题目:CoinChange 有面额不等的coins,数量无限,要求以最少的\(coins\)凑齐所需要的\(amount\). 若能,返回所需的最少coins的数量,若不能,返回-1. Exam ...