最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • AJAX分页 (内容涉及到 存储过程)

    <1>

    首先我们在数据库(SQL Server)中声明定义存储进程

    use sales –指定数据库

    if(exists(select * from sys.objects where name='proc_location_Paging')) –如果这个proc_location_paging存储进程存在则删除
    drop proc proc_location_Paging
    go

    create proc proc_location_Paging –创建存储进程
    (
    @pageSize int, –页大小
    @currentpage int, –当前页
    @rowCount int output, –总行数(传出参数)
    @pageCount int output –总页数(传出参数)
    )
    as
    begin

    select @rowCount= COUNT(locid) from location –给@rowCount赋值

    select @pageCount= CEILING((count(locid)+0.0)/@pageSize) from location –给@pageCount赋值

    select top (@pagesize)* from (select ROW_NUMBER() over(order by locid) as rowID,* from location) as t1
    where rowID >(@pageSize*(@currentpage⑴))

    end
    go

    ———————————以上就表示这个存储进程已定义完了。

    ———————————以下是履行这个存储进程。我们可以看结果

    declare @rowCount int,@pageCount int –先声明两个参数

    –履行proc_location_Paging这个存储进程。@rowCount,@pageCount后面都有output 表示它们两是输出参数
    exec proc_location_Paging 10,1,@rowCount output,@pageCount output

    select @rowCount,@pageCount –查询这两个参数的值

    <2>

    由于是直接访问数据库的,所以我们将下面这条方法写入到DAL层中,这里我将它写入到SqlHelper中

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Data;
    using System.Reflection;

    namespace LLSql.DAL
    {
    public class SqlHelper
    {
    /// <summary>
    /// 获得连接数据库字符串
    /// </summary>
    private static string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;

    public static DataTable ExecuteProcPageList(int pageSize, int currentPage, out int rowCount, out int pageCount)
    {
    using (SqlConnection conn = new SqlConnection(connStr))
    {
    conn.Open();
    using (SqlCommand cmd = conn.CreateCommand())
    {
    cmd.CommandText = "proc_location_paging"; //存储进程的名字
    cmd.CommandType = CommandType.StoredProcedure; //设置命令为存储进程类型(即:指明我们履行的是1个存储进程)

    rowCount = 0;
    pageCount = 0;//这里随意给rowCount,pageCount赋个值,由于使用out传递参数的时候,在方法内部1定要给out参数赋值才能用它,但是虽然这里给它赋初值了,但是在履行存储进程中,存储进程又会给这两个参数赋值,并返还回来给我们,那个才是我们要值

    SqlParameter[] parameters ={
    new SqlParameter("@pageSize",pageSize),
    new SqlParameter("@currentpage",currentPage),
    new SqlParameter("@rowCount",rowCount),
    new SqlParameter("@pageCount",pageCount)

    };

    //由于在存储进程中@rowCount 与@pageCount 是1个输出参数(output), 而parameters这个数组里,第3,和第4个参数就是要用来替换掉这两个输出参数的,所以这里要将parameters这个数组里的这两个参数设为输出参数。
    parameters[2].Direction = ParameterDirection.Output;
    parameters[3].Direction = ParameterDirection.Output;

    cmd.Parameters.AddRange(parameters); //将参数传递给我们的cmd命令对象

    DataTable dt = new DataTable();
    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
    {
    adapter.Fill(dt);//到数据库去履行存储进程,并将结果填充到dt表中
    }

    //等存储进程履行终了后,存储进程会把这两个输出参数传递出来。那末我们在这里来获得这两个返回参数。
    rowCount = Convert.ToInt32(parameters[2].Value);
    pageCount = Convert.ToInt32(parameters[3].Value);

    return dt;

    }
    }

    }
    }
    }

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » AJAX分页 (内容涉及到 存储过程)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级