public void DataGridDataBind()
{
OleDbConnection ObjConn=new OleDbConnection(@DataBaseDB.ConnectionString);
OleDbDataAdapter OjbCommand1=new OleDbDataAdapter("SELECT top 5 * FROM News order by AddDT desc",ObjConn);
DataSet ds1=new DataSet();
OjbCommand1.Fill(ds1);
this.myDataGrid.DataSource=ds1;
this.myDataGrid.DataBind();
ObjConn.Close();
}
上面的运行时还正常的,当我在查询语句中加入条件改成如下:SELECT top 5 * FROM News where MenuId=2 order by AddDT desc时就不正确了,显示的就不只五条记录了.不知道为什么?请高手指点.

解决方案 »

  1.   

    随便写了个例子,两个字段,"sno","sname":
    select top 5 * from studentInfor where sname='liujia' order by sno desc输出如下:03281310 liujia
    03281309 liujia
    03281308 liujia
    03281305 liujia
      

  2.   

    不可能的,除非你的DataSet被填充了多次。
      

  3.   

    zhzuo(秋枫) ( ) 信誉:110    填充多次只要不加条件语句也能正常显示.我试过了.就是不正确.我怎么看语句也是对了.就是找不到原因.
      

  4.   

    忘了告诉大家,我用的数据库是access2007
      

  5.   

    那就是数据库本身不支持SELECT TOP查询,我以前通过对ODBC SYBASE 11执行,也同样不能正确得到结果。
      

  6.   

    我改成SELECT top 5 * FROM News where MenuId=2就能正常显示了.不知道什么吗?难道是order by AddDt desc不能用?
      

  7.   

    终于找到问题所在了,是AddDt的问题,谢谢大家给于的支持.