3

I'm creating an insurance management system for my DBMS project in university, and I am having a problem with deleting a record from SQL Server. It throws an exception:

SqlException: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.

It also successfully deleted a record from my database. Could anyone please tell me how to remove this kind of exception?

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());
}

3 Answers 3

4

I think you are using the wrong thing to perform the delete operation. Try using st.executeUpdate() instead of ResultSet rs = st.executeQuery() - you are executing a delete rather than something that would return a result set.

Sign up to request clarification or add additional context in comments.

1 Comment

Exactly! =) This is the real answer.
1

This is not a problem with SQL Server. The problem is with your code (what is that? C#? The object is set to expect a result set from the server, but the query is a DELETE statement, and those return no rows... ever.

State the programing language, and research for how to execute statement instead requesting result sets.

This line makes sense for a SELECT not for an UPDATE

 ResultSet rs = st.executeQuery();

Comments

0

if you're executing a delete statement, why are you executing

ResultSet rs = st.executeQuery();

Here's a sample c# ado.net. concept it the same if you're using 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();   
    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.