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,放在最上面的代码中即可。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。