不用查了,错误提示非常清楚,你用了一个PreparedStatement,却执行了一个不带参数的语句。你最好检查一下,或者把你的这段代码贴出来看看。

解决方案 »

  1.   

    好像是这样子:
    你弄浑了Statement和PreparedStatement
    如果你要用PreparedStatement。
      PreparedStatement ps = null;
     Connection con;
    String sql = "SELECT * from dbo.tb_group  WHERE id = ?";
    ps = con.prepareStatement(sql);
          //<setfindkeyIDdata>
          ps.setInt(1,java.lang.Integer.parseInt(keyID,10));
              //</setfindkeyIDdata>
          rs = ps.executeQuery();
      

  2.   

    PreparedStatement 也可以执行不带参数的查询
      

  3.   

    Connection conn = null;
    PreparedStatement pstmt = null; 
    pstmt = conn.prepareStatement(sql);
             set = pstmt.executeQuery(sql);   就是上面这些语句。
    为什么在一台机器上不报错而在另一台机器上报错?
    一台机器的配置是:IBM AIX +WebSphere 5
    另一台机器的配置是:Windows Server 2000+WebSphere 4
      

  4.   

    “Use java.sql.PreparedStatement.executeUpdate () with no sql string argument.”注意!错误提示的是“executeUpdate()”的问题,可以检查检查别的代码.
      

  5.   

    你最好把你的sql打印出来,看看这条sql有没有问题,如果sql没有问题我们再看是不是executeUpdate()的问题。你这里好像执行的sql=null
      

  6.   

    看看你执行的sql,也许就有答案了
      

  7.   

    不好意思,好几天没有来了 Connection conn = null;
    PreparedStatement pstmt = null; 
    pstmt = conn.prepareStatement(sql);
    //下面这一句的参数去掉,保证你在任何地方都不出错了,呵呵。
             set = pstmt.executeQuery();