asp.net core postgresql 大数据高性能分页

浪淘沙10个月前后端79

 /// <summary>

 /// 分页:返回json格式,参数加密

 /// </summary>

 /// <param name="tbl">表名,Des加密</param>

 /// <param name="flds">读取字段,Des加密:如title,cdt,pv,flg</param>

 /// <param name="orderfld">排序,Des加密:如id desc</param>

 /// <param name="sqlwhere">搜索条件,Des加密:如1=1</param>

 /// <param name="pagesize">分页大小:如10</param>

 /// <param name="pageindex">当前页数:如1</param>

 /// <returns></returns>

 //[QueryParameters]

 //登录判断

 [Authorize]

 [NonUnify]

 [Route("GetPage")]

 [HttpPost]

 public async Task<object> GetPage(string tbl, string flds, string orderfld, string sqlwhere, int pagesize = 15, int pageindex = 1)

 {

     tbl = SecurityHelper.DesDec(tbl);

     flds = SecurityHelper.DesDec(flds);

     orderfld = SecurityHelper.DesDec(orderfld);

     sqlwhere = SecurityHelper.DesDec(sqlwhere);


    


     string sql = "select * from (select row_number() over (order by " + orderfld + ") as rowid, " + flds + " from " + tbl + ") as a where rowid > (" + pagesize + " * (" + pageindex + " - 1)) and rowid <= (" + pagesize + " * " + pageindex + ") and " + sqlwhere;


     var dt = await _db.Ado.GetDataTableAsync(sql);


     ArrayList arrayList = new ArrayList();



     if (dt.Rows.Count > 0)

     {

         for (int i = 0; i < dt.Rows.Count; i++)

         {

             Hashtable ht = new Hashtable();

             for (int j = 0; j < dt.Columns.Count; j++)

             {

                 string ColName = dt.Columns[j].ColumnName;

                 object ColRowData = dt.Rows[i][dt.Columns[j].ColumnName];

                 ht.Add(ColName, ColRowData.ToString());

             }

             await Task.Run(() => arrayList.Add(ht));

         }

     }

     dt.Dispose();


     var TotalPage =await _db.Ado.GetStringAsync("select count(*) from " + tbl + " where " + sqlwhere);


     return new ApiPageResult { statusCode = 200, totaldata = TotalPage, data = arrayList, succeeded = true };

 }


相关文章

asp.net core sqlsugar 复制插入并返回新id

var result = await _db.Ado.GetScalarAsync("insert into qy_gw(gwmc...

asp.net core指定运行端口 如:http://localhost:5002

网站根目录新建:hosting.json输入:{   "urls": "http://localhost:5002" }...

asp.net core webapi 调用furion 的webapi json接口

/// <summary> /// 根据学校读取支付科次 /// </summary> /// <returns>&l...

asp.net razor post

asp.net razor post

@page @model xxtsoft.Web.Entry.Pages.qd.IndexModel @{     Layout =&...

asp.net core 获取url及参数

  var url = $"{Request.Scheme}://{Request.Host}{Request.Path}{Request....

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。