Bouton / Result Set ne fonctionne qu'une fois [Résolu]

Cafekafe 26 Messages postés mercredi 8 octobre 2008Date d'inscription 17 juin 2010 Dernière intervention - 28 avril 2010 à 02:11 - Dernière réponse : Cafekafe 26 Messages postés mercredi 8 octobre 2008Date d'inscription 17 juin 2010 Dernière intervention
- 6 mai 2010 à 03:01
Bonjour, j'essaie de faire fonctionner ce simple login, mais pour une raison obscure mon bouton OK (btnOk) ne fonctionne que la première fois qu'on appuie dessus! Désolé pour les noms des textfields et autres affichages bizarres, ceci est en phase très peu avancé! Quelqu'un peut m'aider?? Merci d'avance!

import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;



public class LogIn extends JFrame {

private String url;
private Connection connecter;
private Statement instruction;
private ResultSet jeuResultats;
private JLabel lblID = new JLabel("ID: ", JLabel.RIGHT);
private JLabel lblPW = new JLabel("PW: ", JLabel.RIGHT);
private JButton btnOK = new JButton("OK");
private JButton btnRegister = new JButton("Remplissez les champs et cliquez ici pour vous enregistrer");
private JTextField txtID = new JTextField(10);
private JTextField txtPW = new JTextField(10);
private JTextField txtTest = new JTextField(50);

public LogIn() {
super ("Identification Joueur 1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

FlowLayout flo = new FlowLayout();
setLayout(flo);
add(lblID);
add(txtID);
add(lblPW);
add(txtPW);
add(btnOK);
add(btnRegister);
add(txtTest);
setSize(350,150);
setVisible(true);

try
{
url = "jdbc:odbc:francis";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connecter = DriverManager.getConnection(url);
txtID.setText("Connection reussie");
}
catch(ClassNotFoundException cnfex)
{
cnfex.printStackTrace();
txtID.setText("Class not found exception");
}
catch(SQLException sqlex)
{
sqlex.printStackTrace();
txtID.setText("SQLException");
}


btnOK.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(e.getSource()== btnOK)
trouverID();
}
}
);

}

private void trouverID()
{
try
{
if(!txtID.getText().equals(""))
{

Statement ordre = connecter.createStatement();
String requeteID "SELECT * FROM players where userName '" + txtID.getText() + "'";
txtTest.setText(requeteID);
ResultSet rs = ordre.executeQuery(requeteID);
afficher(rs);
}
else
txtID.setText("Entrez votre ID pour commencer");
}
catch(Exception e)
{

}
}

private void afficher(ResultSet rs)
{
String numeroEnregistrement = "";
try {
boolean autresEnregistrements = rs.next();
if (autresEnregistrements)
{
numeroEnregistrement = rs.getString("userName");
}
else
{
JOptionPane.showMessageDialog(this,"Aucun enregistrement à montrer");
}
if (numeroEnregistrement.equals(txtID.getText())) {
txtPW.setText( numeroEnregistrement);
}
}
catch(SQLException sqlex)
{
txtPW.setText("erreur");
}
catch(Exception e)
{
txtPW.setText("Autre erreur");
}
}
public static void main(String[] arguments) {
LogIn latf = new LogIn();
}
}
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Cafekafe 26 Messages postés mercredi 8 octobre 2008Date d'inscription 17 juin 2010 Dernière intervention - 6 mai 2010 à 03:01
3
Merci
En effet, il fallait fermer le Statement pour pouvoir réitérer la requête en utilisant ordre.close();

private void trouverID()
{
try
{
if(!txtID.getText().equals(""))
{

Statement ordre = connecter.createStatement();
String requeteID "SELECT * FROM players where userName '" + txtID.getText() + "'";
txtTest.setText(requeteID);
ResultSet rs = ordre.executeQuery(requeteID);
afficher(rs);
ordre.close();
}

Merci Cafekafe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de Cafekafe
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 28 avril 2010 à 08:10
0
Merci
Salut,

Commence par afficher les erreurs, ca te montrera ce qui cloche :

catch(Exception e) 
{ 
  // mets au moins un e.printStackTrace() sinon tu ne verras pas les exceptions qui sont déclenchées !
}

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
Cafekafe 26 Messages postés mercredi 8 octobre 2008Date d'inscription 17 juin 2010 Dernière intervention - 6 mai 2010 à 02:36
0
Merci
Est-ce que ca peux avoir rapport avec le ResultSet? Faut t-il le réinitialiser ou le remettre a 0?
Commenter la réponse de Cafekafe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.