SqlCommand Comm=new SqlCommand("select top "+iPageSize+"  from (select top "+iSelect+"  from book order by id desc) order by id",Conn);SqlDataReader gbook_mdb=Comm.ExecuteReader();
我的一小段查询程序一运行到这里就会提示,“关键字 'from' 附近有语法错误。”
前面的链接字符串都是正确的,我真不知道这句sql语句怎么错啦?求大虾们帮解!

解决方案 »

  1.   

    up up  知道的朋友帮解解
      

  2.   

    SqlCommand Comm=new SqlCommand("select top "+iPageSize+" *  from (select top "+iSelect+" from book order by id desc) as t order by id",Conn);
      

  3.   

    最好把字符串打印出来看看
    不知道你 iPageSize,iSelect 这些变量里放着些什么
      

  4.   

    你要 select 神马呢 ?
    select top  ???select top XX 字段名 form XX
      

  5.   

    SqlCommand Comm=new SqlCommand("select top "+iPageSize+" from [table] where id in (select top "+iSelect+" from book order by id desc) order by id desc",Conn);
     
      

  6.   

    string sql =@"select top "+iPageSize+" from (select top "+iSelect+" from book order by id desc) order by id";
    SqlCommand Comm=new SqlCommand(sql,Conn);最好是这样 有问题的时候可以下断点在sql上面
    看看整个字符串拼接成什么样子 然后复制到sql server上面运行看看
      

  7.   

    参考下面的例子:
    select top 12 * from 
    (select top 24 from book order by id desc) as new_table --此处要添加临时表别名 
    order by id
      

  8.   


    SqlCommand Comm=new SqlCommand("select top "+iPageSize+" * from (select top "+iSelect+"   * from book order by id desc) as book1 order by id",Conn);SqlDataReader gbook_mdb=Comm.ExecuteReader();
      

  9.   

    1.看看 iPageSize iSelect的值
    2.子查询 as 一下
      

  10.   

    把后面的一个结果集 取一个别名, as a
      

  11.   

    楼主,你的错误原因有两个:
       1.两个 from 前面都没加 
       2.临时表添加别名,如下例子;
    select top 12 * from 
    (select top 24 * from tb order by id desc) as new_table --此处要添加临时表别名 
    order by id
      

  12.   

    TOP 后面是数字,你根本没有写清楚要查询什么啊,如:
    SELECT TOP 10 USER_NAME,USER_PWD FROM TABLE ORDER BY USER_NAME
      

  13.   


    看了很多楼 把你的语句再综合其他楼的语句产生如下的 T-sql 代码
    SqlCommand Comm=new SqlCommand("select top "+iPageSize+" * from [table] where id in (select top "+iSelect+" * from book order by id desc) order by id desc",Conn);
      

  14.   

    SqlCommand Comm=new SqlCommand("select top "+iPageSize+" * from (select top "+iSelect+" * from book order by id desc) as N order by id",Conn);
    嵌套查询里的第二个select是作为新的查询对象,加上as ,然后你from前不加字段名,你让SQL查神马啊加*是查询所有的字段内容。
      

  15.   

    “feixuyue”  你的这种写法不行的,提示当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
      

  16.   

    select top "+iPageSize+" from 这后面少了一个表。
      

  17.   


    你的这句话肯定不会通过的.from 后面跟的是表名称,你的第一个from 后面跟的是什么??? 
      

  18.   

    嵌套查询是可以这样写的哈,第一个from后面嵌套内容集,我错在没有as 临时表哈