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[] != "")
{
string strstart = pointArray.Count() == ? ")" : "";
for (int i = ; i < pointArray.Count(); i++)
{
if (i == )
{
sql += " and (b.TypeFlag=:TypeFlag" + i + strstart;
}
else if (i + == 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[] != "")
{
for (int i = ; i < pointArray.Count(); i++)
{
Sqlquery.SetParameter("TypeFlag" + i, pointArray[i]);
}
}
totalRows = int.Parse(Sqlquery.List().Count.ToString());
Sqlquery.SetFirstResult((pageIndex - ) * pageSize);
Sqlquery.SetMaxResults(pageIndex * pageSize);
return Sqlquery.List<object[]>();
}
Nhibernate中多Or条件的查询,很多Or的查询的更多相关文章
- 【MySQL】02_子查询与多表查询
子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入. SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者 ...
- Oracle子查询之高级子查询
Oracle 高级子查询 高级子查询相对于简单子查询来说,返回的数据行不再是一列,而是多列数据. 1,多列子查询 主查询与子查询返回的多个列进行比较 查询与141号或174号员工的manager_id ...
- NHibernate中,查询SqlServer数据库多个实体对象
关于datetime类型使用: Oracle: "and tb.EffectiveDate >= to_date(?,'yyyy-mm')" Sql: "an ...
- SQL 中的多条件查询
在应用程序开发中,多条件查询是个经常遇到的情况,最简单最麻烦的方法是把所有的可能情况都考虑到,但是无疑是繁琐的,而且很容易漏掉可能的情形,下面是SQL语句实现多条件查询的情况 select * fro ...
- Hibernate多对多关联映射的HQL中的in条件查询问题
群里有朋友求解一个问题,高分求一条HQL多对多查询语句 . 问题描述见 http://topic.csdn.net/u/20090621/16/4eac6fe0-bf3e-422e-a697-f758 ...
- MySql数据查询中 left join 条件位置区别
/*A 和 B 两张表都只有一个 ID 字段 比如A表的数据为 ID 1,2,3,4,5,6 B表的数据为 ID 1,2,3 判断 JOIN 查询时候条件在 ON 和 WHERE 时的区别 ON 和 ...
- [转]NHibernate之旅(10):探索父子(一对多)关联查询
本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NH ...
- NHibernate中的API
本篇文章介绍的是NHibernate的各种API及其作用. 下图描述了NHibernate的API在分层架构中的作用,下面将进行详细说明. NHibernate的接口大致分为四类:1. 被应用程序调 ...
- .NET中那些所谓的新语法之四:标准查询运算符与LINQ
开篇:在上一篇中,我们了解了预定义委托与Lambda表达式等所谓的新语法,这一篇我们继续征程,看看标准查询运算符和LINQ.标准查询运算符是定义在System.Linq.Enumerable类中的50 ...
随机推荐
- Hadoop 源码阅读技巧
http://www.cnblogs.com/xuxm2007/category/388607.html 个人谈谈阅读hadoop源代码的经验.首先,不得不说,hadoop发展到现在这个阶段, ...
- 苦逼IT才能看懂的笑话
这是苦逼IT才能看懂的笑话1.栈和队列的区别是啥? 吃多了拉就是队列:吃多了吐就是栈 2.世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到她... 3.<c++程 ...
- http 错误代码一览表
http协议一些常见的状态码为: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分 ...
- 【Sprint3冲刺之前】项目完成时间表
Sprint2冲刺成果——项目完成时间表 项目完成时间表 经过Sprint2小组总结会议的探讨,我们决定一起约定项目alpha版本,beta版本,release版本的发布时间,发布形式及预计完成效果 ...
- ListView优化总结(二)--Android
3.使用Activity和Delegate与适配器交互 这个内容是从书里看到的,通过托付模式帮助开发人员把全部的业务逻辑从适配器中移到Activity中. 以下是加入电话号码的样例,列表中每一行都有一 ...
- import caffe时出错:can not find module skimage.io
import caffe时出错:can not find module skimage.io //以下内容在ubuntu16.4上实际验证过.注意大小写的.----20170605 在命令行输入Py ...
- vim 参数文件配置
下面是我配置的遇到问题不能修改配置文件时的解决方案 1 /usr/share/vim/vimrc 2 这个是系统型的vimrc配置文件,为了保证vim的正常使用,一般并不会修改这个文件, 而是应该在你 ...
- 使用UIWebView载入本地或远程server上的网页
大家都知道,使用UIWebView载入本地或远程server上的网页,sdk提供了三个载入接口: - (void)loadRequest:(NSURLRequest *)request; - (voi ...
- GitLab Pages expect to run on their own virtual host
GitLab Pages administration | GitLab https://docs.gitlab.com/ce/administration/pages/
- Java中实现函数的阻塞
使用Object.wait()即可实现阻塞,使用Object.notify()解除阻塞,代码示例如下 MainFrame.java import javax.swing.JFrame; import ...