Bonjour,
Merci pour cette piste. J'ai finalement reussi à le faire. Il y a un post qui m'a beaucoup aidé, le numéro 3 de: http://www.developpez.net/forums/d42...tere-java-sql/
Mon code reste comme cela:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| public void verifier() throws SQLException{
for(Controleur c : controleurs){
// if(c.getTxtValeur().equals("")){
if("".equals(c.getTxtValeur())){
nbErreurs++;
}
}
if(nbErreurs==3){
info.setEtat(EtatPanelInfo.ERREUR);
info.setText("ERROR! Todos los campos de búsqueda están en blanco. Por favor introduzca datos... ");
info.repaint();
}
else{
AdminBD db = new AdminBD();
Connection cn = db.Connect();
SQLBuilder gen = new SQLBuilder("");
String strLike = "";
for (Controleur c : controleurs){
strLike = "%"+ c.getTxtValeur()+"%";
gen.and(!"".equals(c.getTxtValeur()), "upper ("+ c.getTxtNom()+") "+" like ?", strLike);
}
PreparedStatement stmt = gen.createStatement(cn);
info.setEtat(EtatPanelInfo.NEUTRE);
info.setText("");
info.repaint();
panel.setVisible(true);
jtbProducto.setVisible(true);
showResultado(stmt.toString());
}
} |
L'unique problème c'est que je fais deux PreparedStatement, un pour obtenir ma requête:
PreparedStatement stmt = gen.createStatement(cn);
après je le met dans une chaîne pour le passer à ma methode showResultado:
showResultado(stmt.toString());
C'est par la méthode showResultado que je manipule la base de données. J'ai essayé de modifier la classe classe SQLBuilder du post numéro 3 cité ci-dessus pour obtenir seulement une chaîne sans être obligé de me connecter deux fois à la base de donnés mais je ne suis pas arrivé.
Le code marche bien, mais ce n'est pas propre de me connecter deux fois a la BD sans en avoir besoin, non?
Partager