La méthode executeQuery() ne peut pas prendre des arguments sur un PreparedStatement ou CallableStatement. Erreur
Je suis d'avoir ce genre d'erreur lorsque vous tentez de vous connecter et de récupérer des données de ma base de données.
La méthode executeQuery() ne peut pas prendre des arguments sur un PreparedStatement ou CallableStatement.
Mon code va comme ceci.
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);
}
}
- Supprimer la
executeUpdate()
appel. Il va générer une erreur, comme lePreparedStatement
ne contient pas une instruction SQL update.
Vous devez vous connecter pour publier un commentaire.
vous n'avez pas besoin de la queryString la deuxième fois, parce que vous "dit" le preparedStatement de la Chaîne avec cette:
ce serait la bonne façon:
essayer
vous avez déjà requête spécifiée lors de la création preparedstatement dans
Juste ajouter
{ }
pour votre chaîne de requête.j'.eexecute()
etexecuteUpdate()
à la fois travailler.executeQuery()
ne fonctionne que lorsque votre procédure retourne un jeu de résultats.