网站用的是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
        }

解决方案 »

  1.   

    SELECT TOP 10 * FROM TB ORDER BY ...
      

  2.   

     select top 10 
    IList alist = HibernateTemplate.Find("");
      

  3.   


    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不管用啊!
      

  4.   

    IList list = HibernateTemplate.Find("select top 10 from newsInfo where newsclassify='" + classify + "' order by newsid desc");
                return list;
    把*星去掉试下
      

  5.   

    * 和 top都是非法字符,我真是没辙了,这一个问题都折腾一晚上了。
    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 ,他说* 有问题
      

  6.   

    SetFirstResult(0)可能是1
    SetMaxResult(10)...
    就是这样把。
      

  7.   

    Hibernate
    晕倒,不能用MSSQL语法
      

  8.   

    IList list = HibernateTemplate.Find("from newsInfo  where  newsclassify='" + classify + "' order by  newsid desc");
                return list;
    得到list再取前10项吧
      

  9.   

    select top 10....
    或者FILL的时候取十条就OK的
      

  10.   

    整个数据集都拿到了,拿几条还不简单,sql的方式不行就用.net的方式拿呗。
      

  11.   

    select top 10 from 表名 
      

  12.   

    不用TOP 10的话可以用其他的方式来实现啊
      

  13.   

    可以遍历你的list,取前面十个啊
      

  14.   

    其实你可以重写方法,加一个参数 top 取前几行数据
      

  15.   

    第一步:取得HIBERNATE的session第二部创建 queryQuery query = session.CreateQuery(sql);
    query.SetFirstResult(0);从第0条开始
    query.SetMaxResult(10);查10条记录
    return query.list();分页的时候也是这样,如果一页10条的话,下面显示的是第2页
    query.SetFirstResult(10);从第10条开始,即第二页
    query.SetMaxResult(10);查10条记录HIBERNATE 会自动生成相应数据库的分页SQL语句
      

  16.   

    创建一个10个元素的list,把前十条加到新建的list
      

  17.   

    public IList FindNewsinfoByClassify(string classify)
            {
                IList list = HibernateTemplate.Find(" top 10 from newsInfo  where  newsclassify='" + classify + "' order by  newsid desc");
                return list;
                //这是取前十条..
            }
      

  18.   

    select top 10 tablename.* from tablename
    IList alist = HibernateTemplate.Find(""); 
     
      

  19.   

    问题解决了,其实答案很简单的,关键是Nhibernate没有完全掌握啊。贡献出来。//分页的,一块贡献了
    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;
            }如果先去除来势必会浪费很大资源的,
      

  20.   

    ID为不自增长类型:
    select top 10 from 表名 where id not in(select top 30 from 表名)
      

  21.   

    top好像只有MSSQL有,Oracle就没有。你去数据库板块问问吧