NHibernate -- HQL

使用NHibernate中的HQL来查询数据。

 

代码:

1         /// <summary>

2         /// 查找事件

3         /// </summary>

4         private void btn_Select_Click(object sender, EventArgs e)

5         {

6 

7         }

 

 

 

 

1.查询,且是使用参数:

 1             //**** 查询 *****

 2             IQuery query = session.CreateQuery("from Person p where p.Id = ? and p.Name = :name");

 3 

 4             //NHibernate中使用参数

 5             //一种是用 "?" ,一种使用 ":"。如果使用?,那么直接表示位置,如果使用:,那么使用:后面的文件名

 6             //在NHibernate中的语句:

 7             //NHibernate: select person0_.Id as Id0_, person0_.Name as Name0_ from Person person0_ where person0_.Id=@p0 and person0_.Name=@p1;@p0 = 2, @p1 = '事件aaaaaaaa'

 8             //此时 0 代表是第一个参数

 9             //此时 1 代表是第二个参数

10             query.SetParameter(0, 2);                   //使用 ?

11             query.SetParameter("name", "测试");         //使用 :  

12 

13             IList<Person> list = query.List<Person>();

14 

15             this.label3.Text = list[0].Id.ToString() + list[0].Name.ToString();

 

 

 

 

 

2.查询--指定查询的条数,如从第2条--第5条数据:

 1             //**** 查询指定行数****

 2             IQuery query = session.CreateQuery("from Person");

 3 

 4             IList<Person> list = query.List<Person>();

 5 

 6             //重新给list赋值

 7             //查询3--5条之间的数据,使用的是下标索引,0代表第一条。

 8             list = list.Skip<Person>(3).Take<Person>(5).ToList<Person>();

 9 

10             this.label3.Text = list[2].Id.ToString() + " " + list[2].Name.ToString();

 

 

 

 

 

将1或是2,放在最上面的代码中即可。

 

你可能感兴趣的:(Hibernate)