数据库是access这样可以
ass.Append("select  top  10  * from M_product as  a  where   a.[id]>
( select max([id]) from ( select  TOP 2 [id] 
 from M_product  where 1=1 ORDER BY [id] ) as b ) ORDER BY a.[id] ");
改成传参数就不行了
ass.Append("select  top  "+pagesize+"  * from M_product as  a  where   a.[id]>
( select max([id]) from ( select  TOP "+pagesize2+" [id] 
 from M_product  where 1=1 ORDER BY [id] ) as b ) ORDER BY a.[id] ");

解决方案 »

  1.   

    跟踪一下,传进的参数 pagesize ,pagesize2 是不是有效的数据
      

  2.   

    ACCESS
    参数的定义要和语句里出现的情况一致
    不知道楼主是否是因为这个
      

  3.   

    有些时候是这样的。
    而且很多access语句和sql不一样。
    没有sql的强大。‘
      

  4.   

    我花了两天时间把SQL 2000的一个系统转换成ACCESS的,就是卡在这一条语句上
      

  5.   

    pagesize pagesize2
    是不是先定义pagesize
      

  6.   

    不知道子查询里,
    是不是先运行里面那个pagesize2的
    要是这样。
    就两个参数顺序换着来定义看看。
    就是这个顺序这样看看行不行sqlparam pagesize=..
    sqlparam pagesize2=..这样先试试,
    或者上面这两个顺序再反过来
    我只知道出现问题可能是因为这一种情况
    因为我原来出现过这样的问题。
    参数定义的顺序错了 
      

  7.   

    如果用下面这种方式还不行,就不是参数的问题
    string s="select  top  "+pagesize+"  * from M_product as  a  where   a.[id]>
    ( select max([id]) from ( select  TOP "+pagesize2+" [id] 
     from M_product  where 1=1 ORDER BY [id] ) as b ) ORDER BY a.[id] ";
    ass.Append(s);
      

  8.   

    如果pagesize2传一个1 进去就正常,如果传0进去,就出错即使是iif( IsNull(max([id])), 1, max([id]) )也是一样,只能当pagesize2=0时,就直接加1了。不过这样有一条数据显示不了