select top ? * from doct where dfrom='?' order by dtime descdfrom='?'不用加''

解决方案 »

  1.   

    确实不要''
    但又有问题了,我改成这样后:
    <%!public ResultSet executeQue(int topNum,String doct){
        ResultSet rss=null;
        try{
          PreparedStatement pstmt = conn.prepareStatement(
              "select top ? * from doct where dfrom=? order by dtime desc");
          pstmt.setInt(1,topNum);
          pstmt.setString(2,doct);
          rss=pstmt.executeQuery();
        }catch(SQLException e){ System.out.println("Error :"+e.getMessage());}
        return rss;
      }%>提示错误:
    Error :[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: '@P1' 附近有语法错误。
    难道select top 9 * 中9不是int类型?我把double,long 都试了好像都不行啊
      

  2.   

    setInt(1,topNum);是有问题的,你把数据库中的topNum改为varchar型,把setInt(1,topNum)
    ->>setString(1,topNum)就可以了,你试试。