关于动态拼接SQL语句的排序问题。 返回

求助
4 1845
该叫什么 fanqie 发布于2018/1/19
悬赏:5 飞吻
public virtual List<Tmodel> PageQuery(int index, int size, Tmodel filter, ref int totalCount, String orderBy = "")
        {
            List<Tmodel> rt = new List<Tmodel>();
            try
            {
                String sqlStr = “SELECT * FROM [Commodity] WHERE IsDel = 0 AND (1=2  OR TID LIKE '%222%' OR Code LIKE '%222%')”;
                if (String.IsNullOrEmpty(orderBy)) 
                {
                    orderBy = " ORDER BY " + pk + " DESC";
                }
                if (!String.IsNullOrEmpty(sqlStr))
                {
                    sqlStr += " " + orderBy;
                }
                using (SqlSugarClient db = DbBase.GetInstance())
                {
                    rt = db.SqlQueryable<Tmodel>(sqlStr).ToPageList(index, size, ref totalCount);
                }
            }
            catch (Exception) { rt = null; }
            return rt;
        }


这样写会出现问题如下问题,导致不能同时使用翻页和排序。


除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。”


问题的原因我知道了,但就想问一下这个框架有没有实现使用动态拼接SQL语句翻页查询同时可以满足动态排序。


求大神。


热忱回答4

  • fanqie fanqie VIP0
    2018/1/19

    管理员大神,能不能把toPageList方法里面开放order by参数,将这个排序放到分页语句里面应该就可以解决这个问题了。

    0 回复
  • db.SqlQueryable<Tmodel>(sqlStr).Orderby(sql).ToPageList

    0 回复
  • fanqie fanqie VIP0
    2018/1/19

    @fate stay night:试过了,得出来的SQL语句是一样的,报的错也是一样的。

    0 回复
  • fanqie fanqie VIP0
    2018/1/19

    @fate stay night:谢谢,不好意思,多加了个order by.已经解决了。灰常感谢。

    0 回复

版块

学习文档

最新会员

发布达人

回贴达人