Sql server Java&SQL Server异常:该语句未返回结果集

Sql server Java&SQL Server异常:该语句未返回结果集,sql-server,Sql Server,我正在大学为我的DBMS项目创建一个保险管理系统,我在从SQL Server中删除记录时遇到问题。它抛出一个异常: SqlException:com.microsoft.sqlserver.jdbc.SQLServerException:语句未返回结果集 它还成功地从我的数据库中删除了一条记录。有人能告诉我如何删除这种异常吗 String SQL="delete from INMS_3 where Agent_Id=? and First_Name=? and Last_Name=? and

我正在大学为我的DBMS项目创建一个保险管理系统,我在从SQL Server中删除记录时遇到问题。它抛出一个异常:

SqlException:com.microsoft.sqlserver.jdbc.SQLServerException:语句未返回结果集

它还成功地从我的数据库中删除了一条记录。有人能告诉我如何删除这种异常吗

String SQL="delete  from INMS_3 where Agent_Id=? and First_Name=? and Last_Name=?  and User_Name=? and Phone_no=?";

try {  
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
        "databaseName=INMS;user=TestingUser;password=1234;";
    Connection con = DriverManager.getConnection(connectionUrl);
    System.out.println("Connected to sql server");

    String str=jTextField1.getText();
    String str1=jTextField2.getText();
    String str2=jTextField3.getText();
    String str3=jTextField4.getText();
    String str4=jTextField5.getText();

    PreparedStatement st = con.prepareStatement(SQL);

    st.setString(1, str);
    st.setString(2,str1);
    st.setString(3,str2);
    st.setString(4,str3);
    st.setString(5, str4);

    ResultSet rs = st.executeQuery();

    if(rs.next());
    {
        JOptionPane.showMessageDialog(null,"Deleted Succesfully");
    }

    if(!rs.next())
    {
        JOptionPane.showMessageDialog(null,"Unable to delete");
    }
    else
    {
        JOptionPane.showMessageDialog(null,"Unable to delete");
    }
} catch (SQLException e) {
    System.out.println("SQL Exception: "+ e.toString());
} catch (ClassNotFoundException cE) {
    System.out.println("Class Not Found Exception: "+ cE.toString());
}

我认为您使用了错误的东西来执行删除操作。
尝试使用st.executeUpdate而不是ResultSet rs=st.executeQuery-您执行的是删除操作,而不是返回结果集的操作

这不是SQL Server的问题。问题在于你的代码那是什么?C该对象被设置为期望来自服务器的结果集,但查询是一个DELETE语句,这些语句不返回任何行。。。永远

说明编程语言,并研究如何执行语句而不是请求结果集

这一行对于选择而不是更新是有意义的

 ResultSet rs = st.executeQuery();

如果您正在执行delete语句,为什么要执行

ResultSet rs = st.executeQuery();
下面是一个c ado.net示例。如果您使用java,概念是一样的

    using(var conn = new SqlConnection("my connection string"))
    {
        var deleteCmd = new SqlCommand();
        deleteCmd.Connection = conn;
        deleteCmd.CommandType = CommandType.Text;
        deleteCmd.CommandText = @" 
            DELETE Accounts
            WHERE account_id  = @p_account_id 
        ";
        deleteCmd.Parameters.AddWithValue("p_account_id", 123);

        conn.Open();
        deleteCmd.ExecuteNonQuery();   
    }

完全正确这才是真正的答案。