• 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;
    }

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

  • 相关阅读:
    good source
    走进科学之揭开神秘的零拷贝[z]
    git push 本地项目推送到远程分支[z]
    Hibernate配置(通过注解配置)
    Hibernate配置(外部配置文件方式)
    Oracle数据库中scott用户不存在的解决方法
    找滑动窗口的中位数
    Spring日期格式初始化
    Oracle对表空间无权限
    Oracle中默认创建的表
  • 原文地址:https://www.cnblogs.com/adinet/p/10983659.html
Copyright © 2020-2023  润新知