Nhibernate中多Or条件的查询,很多Or的查询

 public IList<object[]> GetRequestAllByUserCodeUnitSysClassify1(string unitNo, string system, string classify, string requestNo, string[] pointArray, int pageIndex, int pageSize, out int totalRows)
        {
            this.Dispose();
            if (dataBaseSession == null)
            {
                dataBaseSession = DataBaseSession;
            }
            string sql = "select a.code,a.requestno,a.unitno,a.system,a.classify,a.requestdepart,a.applieduser,a.appliedtime,a.billtypecode from Tca_Request a,TCA_Billtype b";
            sql += " where a.billtypecode=b.code";
            if (!string.IsNullOrEmpty(unitNo))
            {
                sql += " and a.UnitNo=:UnitNo";
            }
            if (!string.IsNullOrEmpty(system))
            {
                sql += " and a.System=:System";
            }
            if (!string.IsNullOrEmpty(classify))
            {
                sql += " and a.Classify=:Classify";
            }
            if (!string.IsNullOrEmpty(requestNo))
            {
                sql += " and a.RequestNo=:RequestNo";
            }
            if (pointArray[0] != "")
            {
                string strstart = pointArray.Count() == 1 ? ")" : "";
                for (int i = 0; i < pointArray.Count(); i++)
                {
                    if (i == 0)
                    {
                        sql += " and (b.TypeFlag=:TypeFlag" + i + strstart;
                    }
                    else if (i + 1 == pointArray.Count())
                    {
                        sql += " or b.TypeFlag=:TypeFlag" + i + ")";
                    }
                    else
                    {
                        sql += " or b.TypeFlag=:TypeFlag" + i;
                    }
                }
            }
            sql += "  order by a.AppliedTime desc";
            IQuery Sqlquery = dataBaseSession.CreateSQLQuery(sql);
            if (!string.IsNullOrEmpty(requestNo))
            {
                Sqlquery.SetParameter("RequestNo", requestNo);
            }
            if (!string.IsNullOrEmpty(unitNo))
            {
                Sqlquery.SetParameter("UnitNo", unitNo);
            }
            if (!string.IsNullOrEmpty(system))
            {
                Sqlquery.SetParameter("System", system);
            }
            if (!string.IsNullOrEmpty(classify))
            {
                Sqlquery.SetParameter("Classify", classify);
            }
            if (pointArray[0] != "")
            {
                for (int i = 0; i < pointArray.Count(); i++)
                {
                    Sqlquery.SetParameter("TypeFlag" + i, pointArray[i]);
                }
            }
            totalRows = int.Parse(Sqlquery.List().Count.ToString());
            Sqlquery.SetFirstResult((pageIndex - 1) * pageSize);
            Sqlquery.SetMaxResults(pageIndex * pageSize);
            return Sqlquery.List<object[]>();
        }

 

转载于:https://www.cnblogs.com/yisheng/p/3362917.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值