1.本笔记主要介绍Criteria的使用

2.效果界面

3.代码详情

namespace KimismeDemo
{
public partial class Form3 : Form
{
private ISession session;
private ISessionFactory factory;
private ITransaction trans;
public Form3()
{
InitializeComponent();
} #region 0.0 初始化NH - private void Form3_Load(object sender, EventArgs e)
private void Form3_Load(object sender, EventArgs e)
{
Configuration config = new Configuration().AddAssembly("Kimisme");
factory = config.BuildSessionFactory();
session = factory.OpenSession();
dgvList.AutoGenerateColumns = false;
}
#endregion private void tsmiEqual_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof (Student));
criteria.Add(Expression.Eq("Age", ));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList(); } private void tsmiGreaterThan_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.Gt("Age",));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
} private void tsmiLessThan_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.Lt("Age", ));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
} private void tsmiLike_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.Gt("Name", "i"));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
} private void tsmiNot_Click(object sender, EventArgs e)
{
//ICriteria criteria = session.CreateCriteria(typeof(Student));
//criteria.Add(Expression.Not());
//IList<Student> list = criteria.List<Student>();
//dgvList.DataSource = list.ToList();
} private void tsmiIsNull_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.IsNull("Name"));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
} private void tsmiMultiQueryNew_Click(object sender, EventArgs e)
{
ICriteria critera = session.CreateCriteria(typeof (Student));
Student stu =new Student();
stu.Name = "Kim";
stu.Age = ;
critera.Add(Example.Create(stu));
IList<Student> stuList = critera.List<Student>();
dgvList.DataSource = stuList.ToList();
} private void tsmiMultiQueryCriteria_Click(object sender, EventArgs e)
{
IList stuList = session.CreateCriteria(typeof (Student))
.Add(Expression.Like("Name", "%i%"))
.Add(Expression.Between("Age", , ))
.List();
dgvList.DataSource = stuList;
} private void tsmiOr_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.Or(Expression.Eq("Name","Kim"),Expression.Eq("Name","Lily")));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
} private void tsmiBetween_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.Between("Age",,));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
} private void tsmiIn_Click(object sender, EventArgs e)
{
ICriteria criteria = session.CreateCriteria(typeof(Student));
criteria.Add(Expression.In("Name",new string[]{"Kim","Lily"}));
IList<Student> list = criteria.List<Student>();
dgvList.DataSource = list.ToList();
}
}
}

5.代码下载

NHibernate系列学习(三)-条件查询Criteria的更多相关文章

  1. nhibernate教程(4)--条件查询(Criteria Query)

    NHibernate之旅(4):探索查询之条件查询(Criteria Query) 2008-10-16 18:20 by 李永京, 44341 阅读, 43 评论, 收藏,  编辑 本节内容 NHi ...

  2. NHibernate初学三之条件查询(Criteria Queries)与AspNetPager分页实例

    NHibernate除了SQL与HQL两种查询操作外,还有一种就是条件查询Criteria,本文将从网上整理一些Criteria的理论及小实例,最后通过一个结合AspNetPager分页来加深理解,必 ...

  3. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  4. [转]NHibernate之旅(4):探索查询之条件查询(Criteria Query)

    本节内容 NHibernate中的查询方法 条件查询(Criteria Query) 1.创建ICriteria实例 2.结果集限制 3.结果集排序 4.一些说明 根据示例查询(Query By Ex ...

  5. 条件查询Criteria

    public User getUserByNameCri(String name){ Session session = null; User user = null; try { session = ...

  6. Hibernate QBC 条件查询(Criteria Queries) and Demos

    目录 创建一个Criteria 实例 限制结果集内容 结果集排序 关联 动态关联抓取 查询示例 投影Projections聚合aggregation和分组grouping 离线detached查询和子 ...

  7. Hibernate动态条件查询(Criteria Query)

    1.创建一个Criteria实例net.sf.hibernate.Criteria这个接口代表对一个特定的持久化类的查询.Session是用来制造Criteria实例的工厂. Criteria cri ...

  8. hibernate Criteria(条件查询接口)

    Criteria(条件查询接口) // 1.简单查询 List<Customer> list = session.createCriteria(Customer.class).list() ...

  9. [NHibernate]N+1 Select查询问题分析

    目录 写在前面 文档与系列文章 N+1 Select查询问题分析 总结 写在前面 在前面的文章(延迟加载,立即加载)中都提到了N+1 Select的问题,总觉得理解的很不到位,也请大家原谅,这也是为什 ...

随机推荐

  1. cocos2dx 2.1.x 退出SDK相关界面后EGLView 不刷新渲染

    报错内容为: [3390:1456879] failed to call contextcocos2d: surface size: 0x0[3390:1456879] Failed to make ...

  2. 用XAMPP+Wordpress搭建个人博客

    http://biancheng.dnbcw.info/php/456308.html http://jingyan.baidu.com/article/f71d60376ba9571ab641d11 ...

  3. Mabatis错误--Parameter index out of range

    昨天遇到一个错误,之前也遇到过,但是之前遇到很快就解决了,昨天遇到这个错误当时看了大概10来分钟,还是没搞好,今天才来搞好了. 错误信息如下 08:34:43,302 DEBUG getTeacher ...

  4. 1. 数组小挪移CyclicRotation Rotate an array to the right by a given number of steps.

    数组小挪移: package com.code; import java.util.Arrays; public class Test02_2 { public int[] solution(int[ ...

  5. [Vue-rx] Pass Template Data Through domStreams in Vue.js and RxJS

    domStreams enable you to pass additional data along the stream that can be provided by the template ...

  6. SQL 为SQL Server服务指定的凭据无效怎么办

    如下所示,在安装SQL Server2008的时候,我随便输入了了账户名和密码,点击下一步没用   正确做法是:点击账户名右边的小三角,从下拉列表随便选一个("对所有SQL Server服务 ...

  7. window.setTimeout() 和window.setInterval() 的差别

    setTimeout 和setInterval的功能都是经过某一个时间段后发生某件指定的事件或者方法. 如window.setTimeout("sleep()",5000);指的是 ...

  8. 阿里云部署Docker(2)

    之前有一篇文章讲过在阿里云中安装Docker,相对来说那个是安装.可是安装完之后我们通常会碰到问题. 今天我给大家记录一下我的新的解决过程. 环境还是ubuntu12.04.如果我们已经把内核升级到了 ...

  9. 对话DDM:分布式数据库中间件全解析

    进入云计算时代,传统的数据库在性能和容量等方面已无法满足企业的要求,随着数据量的不断骤增,易于扩展.拆分的数据库解决方案对于企业的云化转型更是显得尤为重要.为使企业应用上云更简单,分布式数据库中间件D ...

  10. 【Ubuntu】某灯图标过大

    发现某灯在桌面上图标过大,点击resize拖动没反应,遂查找原因 发现是它图标只有128x128的版本,所以显得比别的图标大 打开lantern.desktop(不知道.desktop请看https: ...