The method executeQuery() cannot take arguments on a PreparedStatement or CallableStatement. Error

jakarta-ee, java, sql-server, tomcat7

Solution

you don't need the queryString the second time, because you "told" the preparedStatement the String with this:

pstatement = connection.prepareStatement(queryString);

this would be the right way:

 pstatement = connection.prepareStatement(queryString);
 pstatement.setString(1, search);
 rs = pstatement.executeQuery();

Problem

I am having this kind of error when trying to connect and retrieve data from my database. The method executeQuery() cannot take arguments on a PreparedStatement or CallableStatement. My code goes like this. ``` String search = request.getParameter("searchstudent"); out.println(search); String connectionURL = "jdbc:sqlserver://localhost:1433;databaseName=Chingdb; integratedSecurity=true;"; Connection connection = null; PreparedStatement pstatement = null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ResultSet rs = null; int updateQuery = 0; if(request.getParameter("editstudent")!= null){ try { connection = DriverManager.getConnection(connectionURL, "root", "root"); String queryString = "SELECT P_ID, lname, fname, mname FROM stu_info Where lname = ?"; pstatement = connection.prepareStatement(queryString); pstatement.setString(1, search); rs = pstatement.executeQuery(queryString); updateQuery = pstatement.executeUpdate(); %> <TABLE cellpadding="15" border="1" style="background-color: #ffffcc;"> <% while (rs.next()) { %> <TR> <TD><%=rs.getInt(1)%></TD> <TD><%=rs.getString(2)%></TD> <TD><%=rs.getString(3)%></TD> <TD><%=rs.getString(4)%></TD> </TR></TABLE> <% rs.close(); pstatement.close(); connection.close(); } } catch(Exception e){ out.println(e); } } ```

Original source