输出一个数据表中,前10条记录,安时间先后顺序!下面是我写的:string strSel = "select top 10 * from Company_publish order by PublishDate desc "; 但执行结果是:输出全部记录,不知为何没有输出前10条请大哥们更正指导一下,谢!
------------------------------------
以下是全代码://显示最新招聘单位的10条信息
//数据库连接语句,并打开
string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source="+Server.MapPath("../workdata/#workdata.aspx");
string strSel = "select top 10 * from Company_publish order by PublishDate desc "; 
OleDbConnection Conn = new OleDbConnection(MyConnString); 
//Conn.Open();
            
//定义内存数据表,ds1
DataSet ds1 = new DataSet(); OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,Conn);
MyAdapter.Fill(ds1,"aaa1");


//把内存数据表里的内容绑定在datagrid上,显示出来
DataGrid1.DataSource=ds1.Tables["aaa1"].DefaultView ; 
DataGrid1.DataBind ();

解决方案 »

  1.   

    不会是top 10 后加上去的吧,重新断开试过没有?
      

  2.   

    用在SQL SERVER 不会有问题。问题是你用的是ACCESS
      

  3.   

    如果只想输出前十个的话,用for循环控制。select 语句改成
    string strSel = "select * from Company_publish order by PublishDate desc ";
      

  4.   

    我用的是access,但以前在asp平台下,这条语句就正常,能显示全部10条,现在全搬来,就不行,只能显示全部记录,大哥们为什么啊???
      

  5.   

    ACCESS和SQL Server都支持TOP关键字的ORACLE数据库才不支持,但它可用其他方法(如:rownumber)你还是检查一下源码吧:可参考以下例子:  //连接mdb表.
      string strConnect="Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source="+Server.MapPath(".\\db\\forum.mdb");
      string sql="SELECT top 1 * FROM topics ORDER BY TopicCreateDate DESC";
      try{
    OleDbConnection conn=new OleDbConnection(strConnect);
    conn.Open();
    OleDbCommand cmd=new OleDbCommand(sql,conn);
    OleDbDataReader dr;
    dr=cmd.ExecuteReader();
    DataGrid1.DataSource=dr;
    DataGrid1.DataBind(); if(DataGrid1.Items.Count==0){
    outError.InnerHtml="There are currently no Postings for this topic, start the posts with the form above.";
    }
    dr.Close();
    conn.Close();
       }
       catch (Exception err){
    outError.InnerHtml=err.Message +"<br/>"+ err .Source;
    return;
       }
      

  6.   

    我再说明一下,我的数据库是access,数据表中有30条记录,PublishDate 是日期/时间格式,值的形式是:2003-3-11为什么string strSel = "select * from Company_publish order by PublishDate desc ";就不行而换成:
    string strSel = "select * from Company_publish order by ID desc ";就可以了,那位可以帮我解释一下,马上结分了!
      

  7.   

    自己来答:因为top 10只取10个不同数据,而publishdata是日期型,2003-3-11,所有记录全一样。所以输出全部记录。
        如果换成时间型now(),就可以,因为每次发布,时间不可能一样,而日期会一样。    所在换成ID更没问题,因为每次全不一样感谢各位了