import java.sql.*; //导入java.sql包
public class Conn { //创建类Conn
Connection con;
Statement stmt; public Connection getConnection(){ //建立返回值为Connection的方法
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("数据库驱动加载成功");
} catch (ClassNotFoundException e) {
 e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;" +
"DatabaseName=学生库","sa","12345");
System.out.println("数据库连接成功");
stmt=con.createStatement();
stmt.executeQuery("drop table 销售表");
System.out.println("删除成功");
stmt.close();
} catch (SQLException e) {
e.printStackTrace();

return con; //按方法要求返回个Connection对象
}
public static void main(String[] args) { //主方法
Conn c = new Conn(); //创建本类对象
c.getConnection(); //调用连接数据库方法
}
}
第18行运行结束后,表删除成功了,可是出现异常,System.out.println("删除成功");这句不运行
提示如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at ceshi.Conn.getConnection(Conn.java:20)
at ceshi.Conn.main(Conn.java:42)sqldrop语句

解决方案 »

  1.   

    stmt.executeQuery("drop table 销售表");执行删除操作 还用executeQuery啊,不是有executeUpdate和execute吗
      

  2.   

    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
    很明显的告诉你了没有返回值,照楼上的改成executeUpdate应该就没问题了
      

  3.   

    executeQuery一般用于查询操作,楼主记住了
      

  4.   

    executeQuery一般用于查询操作,executeUpadate用于更新,删除,修改操作,而且我们应该使用preparedStatement,这样可以防止Sql注入,提高代码的性能,以及提高代码的可读性