网站用的是spring.net +Nhibernate现在遇到问题是不知道怎么取前十条数据了?各位有没有会的?
public IList FindNewsinfoByClassify(string classify)
{
IList list = HibernateTemplate.Find("from newsInfo where newsclassify='" + classify + "' order by newsid desc");
return list;
//这是取出所有的,怎么才能取到前十条?Model是newsInfo
}
public IList FindNewsinfoByClassify(string classify)
{
IList list = HibernateTemplate.Find("from newsInfo where newsclassify='" + classify + "' order by newsid desc");
return list;
//这是取出所有的,怎么才能取到前十条?Model是newsInfo
}
IList alist = HibernateTemplate.Find("");
IList list = HibernateTemplate.Find("select top 2 * from newsInfo where newsclassify='" + classify + "' order by newsid desc");
return list;
错误!!!他不认识TOP
undefined alias or unknown mapping: top [select top 2 * from Model.newsInfo where newsclassify='最新公告' order by newsid desc]
top不管用啊!
return list;
把*星去掉试下
HibernateTemplate.Find("top 6 from newsInfo where newsclassify='" + classify + "' order by newsid desc");IList<newsInfo> list = Session.CreateQuery("select top 6 * from newsInfo where newsclassify='" + classify + "' order by newsid desc").List<newsInfo>();这两个都不行啊,都是top的原因,而且直接写select * from newsInfo ,他说* 有问题
SetMaxResult(10)...
就是这样把。
晕倒,不能用MSSQL语法
return list;
得到list再取前10项吧
或者FILL的时候取十条就OK的
query.SetFirstResult(0);从第0条开始
query.SetMaxResult(10);查10条记录
return query.list();分页的时候也是这样,如果一页10条的话,下面显示的是第2页
query.SetFirstResult(10);从第10条开始,即第二页
query.SetMaxResult(10);查10条记录HIBERNATE 会自动生成相应数据库的分页SQL语句
{
IList list = HibernateTemplate.Find(" top 10 from newsInfo where newsclassify='" + classify + "' order by newsid desc");
return list;
//这是取前十条..
}
IList alist = HibernateTemplate.Find("");
public IList FindAllByPage_newsinfo(string start, string limit)
{
//start从第几条记录开始取值,limit一次取多少
string sqlForPage = "select top "+limit+" * from newsinfo where newsid not in(select top "+start+" newsid from newsinfo order by newsid desc) order by newsid desc";
IList list = Session.CreateSQLQuery(sqlForPage).AddEntity(typeof(newsInfo)).List();
return list;
}
public IList FindNewsinfoByClassify(string classify)
{
string sql="select top 6 * from newsInfo where newsclassify='"+classify+"' order by newsid desc";
IList list = Session.CreateSQLQuery(sql).AddEntity(typeof(newsInfo)).List();
return list;
}如果先去除来势必会浪费很大资源的,
select top 10 from 表名 where id not in(select top 30 from 表名)