public ResultSet executeUpdate(String sql) { 
返回类型错了,不是ResultSet

解决方案 »

  1.   

    添加、删除、修改的方法返回值不能为空!!!
    dui,返回int
      

  2.   

    count = smt.executeUpdate(sql); 
    executeUpdate(sql) 返回的是int不是ResultSet
      

  3.   

    Dbconn.java:40: missing return statement
    public int executeUpdate(String sql) {
                                         ^
    1 errorpackage Sqlconn;
    import java.sql.*; 
    public class Dbconn { String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=java";
    String user = "sa";
    String password = "icncn1218";Connection conn = null; 
    Statement smt=null;
    ResultSet rs = null; //这是全局变量public Dbconn(){ 
    try { 
        Class.forName(driver); 
        conn = DriverManager.getConnection(url,user,password); 
        } 
    catch(Exception ee)
       {   System.out.println("无法加载驱动程序:"+driver);
           ee.printStackTrace();
       }
    } public ResultSet executeQuery(String sql) { try { 
        smt = conn.createStatement(); 
        rs = smt.executeQuery(sql); 
        return rs;   
        } 
    catch(SQLException ex) { 

    System.err.println("aq.executeQuery: " + ex.getMessage()); 
    }  return null; 
    }public int executeUpdate(String sql) { 
    try { 
        smt = conn.createStatement(); 
        int rowCount = smt.executeUpdate(sql); 
        return rowCount;
        } 
    catch(SQLException ex) {
    System.err.println("aq.executeUpdate: " + ex.getMessage()); 
    }
    }
    }
      

  4.   

    我記得“添加、删除、修改”是沒有返回值的。你用void試試
      

  5.   

    executeUpdate 可以返回被操作的纪录条数。你做了封装,当然可以设计为void,或者你设计为boolean, int都没问题。
    不用void,又同时使用try_catch结构的,记住一定要在最后reutrn 一个值,因为编译的时候会认为你没有返回值的,理论上try里的语句会执行不到。
      

  6.   

    你把查询和修改、删除、插入分开来,分别写函数。
    修改如下public ResultSet executeQuery(String sql) { try { 
        smt = conn.createStatement(); 
        rs = smt.executeQuery(sql); 
        return rs;   
        } 
    catch(SQLException ex) { 
    rs.close();
    smt.close();
    conn.close();//按顺序关闭!
    System.err.println("aq.executeQuery: " + ex.getMessage()); 

    finally
    {
    rs.close();
    smt.close();
    conn.close();
    }
     return rs; 
    }public int executeUpdate(String sql) { 
    int count = 0; try { 
        smt = conn.createStatement(); 
        count = smt.executeUpdate(sql); 
        return count; //这儿错了    } 
    catch(SQLException ex) { 

    smt.close();
    conn.close();
    System.err.println("aq.executeUpdate: " + ex.getMessage()); 

    finally
    {
    smt.close();
    conn.close();
    }
    return count;
    }
      

  7.   

    smt.executeQuery(sql)---------返回的是ResultSet
    smt.executeUpdate(sql)---------返回的是int