sql server 2012 分页/dapper/C#拼sql/免储存过程/简易

sql server 2012新特性, 支持 OFFSET/FETCH分页, 就像mysql的limit, 比之前的各种top舒服多了,  看各位大佬们的测评文章说效率也是不相上下的, 

有时候写个小工具或者临时处理一些数据, 就不需要ef这种大工具出场了, 所以我临时拼了一个方法来用, 配合dapper还挺简单的.

 

 

1 //假装using Dapper;
public IEnumerable<Books> GetBooks(int pageIndex, int pageSize)
{
    var conn = GetSqlConnection();
    
    var sql = "select * from books";
    var pagingSql = (sql , " id desc ", pageIndex, pageSize);
    var rowCount = conn.ExecuteScalar<int>($"select count(*) from ({sql}) x");
    var pagedList = conn.Query<Books>(pagingSql);
}

public SqlConnection GetSqlConnection()
{
    //假装返回一个connection对象
    return conn;
}

public string PagingSql(string sql, string orderby, int page, int pagesize)
{
    if (page <= 0)
    {
        page = 0;
    }
    else
    {
        page--;
    }

    var offset = page * pagesize;

    var _sql = $@"SELECT x.* from (
                {sql}
            ) x
            ORDER BY {orderby} 
            OFFSET {offset} ROW
            FETCH NEXT {(pagesize)} ROW ONLY";

    return _sql;
}

 

 

 如果您觉得这篇博客对您产生了一些必要的帮助,  欢迎您对我意思意思, 我将会觉得您非常够意思! 

转载于:https://www.cnblogs.com/adinet/p/10983659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值