程序里面是这么写的!实现分页的功能            string sql = "select top " + pageSize.ToString() + " id,SPBH,SPMC from T_SP where id not in (select top " + (pageSize * pageIndex).ToString() + " id from T_SP  order by id asc)order by id asc";
            DataSet ds1 = ConnAccessDB.ExecuteDataSet(sql,null);
            List_Product.DataSource = ds1.Tables[0].DataSet;//指定repeater数据源
            List_Product.DataBind();//开始绑定             
            ds1.Dispose();//记住要释放呀!!! 
调试出来是这样的。select top 4 id,SPBH,SPMC from T_SP where id not in (select top 0 id from T_SP  order by id asc)order by id asc请问高手们这句话有错吗?
应该怎么写才对?

解决方案 »

  1.   

    在SQL中测试了一下,似乎没有问题,但是在程序中总是提示错误!
      

  2.   

    SQL没问题,你把程序参数传进来后,打印下执行的SQL字符串,看看程序出错信息是什么?
      

  3.   

    似乎Access不能这样执行,只有SQL认得select top 0 id from T_SP
    Access不承认这一写法就是top 0我该怎么写替换这一句?
      

  4.   

    程序传入的参数做个判断,如果是0换一句,直接是 select top 10 .. from tb 的;
    不是0了就用你现在的。
      

  5.   

    Access和sql有些不同,在Access中应该第一天是select top 1,改下再试试。
      

  6.   

    如果是top 10 也背离了本意!仅是选取前10条
    top 0 似乎是所有记录的意思在SQL里面支持
    但是在Access里面却不支持
      

  7.   

    不是,如果你的参数是0,只写前边的,写成 select top 10 id from tb order by id desc如果不是0,就用你现在的 select top 10 id from tb where id not in (select top 100 id from tb order by id asc) order by id desc这样子,分两步去做个判断。