zoukankan      html  css  js  c++  java
  • 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[]>();
            }
  • 相关阅读:
    巨杉数据库多活架构实践
    云数据库架构演进与实践
    语言入门必学的基础知识你还记得么?
    ASP.NET MVC不可或缺的部分——DI及其本质工作分析
    python JoinableQueue在生产者消费者项目中的简单应用
    asp.net core中写入自定义中间件
    终结python协程----从yield到actor模型的实现
    项目开发中使用并发模型常见问题的整理与思考
    LeetCode刷题之合并排序链表
    python学习笔记
  • 原文地址:https://www.cnblogs.com/yisheng/p/3362917.html
Copyright © 2011-2022 走看看