IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

ResultSet vide malgré bonne connexion


Sujet :

avec Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut ResultSet vide malgré bonne connexion
    bonjour,

    J'ai crée une classe Connexion_BDD qui permet de créer une instance de connexion à une base de données.

    J'ai crée dans la classe fenêtre_selection_clients la fonction Afficher_Client( pour l'instant elle est dans cette classe, mais je vais la déplacer dans la classe Client), qui permet d'afficher les clients qui sont de type "particuliers"(il existe également le type "entreprise").
    Le problème est que même si la connexion à la base de données s'effectue sans problème, il n'y a rien dans le resultset après execution de la requête.
    Je ne comprends pas pourquoiet aimerais vraiment comprendre ce qui se passe
    Je vous fais parvenir en fichier joint le détail du message d'erreur que je reçois.

    Je vous transmets également le code des classes Connexion_BDD, Client et fenetre_selection_client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
     
    package package_selection_clients;
     
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.sql.*;
    //import java.util.*;
    import java.util.ArrayList;
     
     
     
     
    public class fenetre_selection_clients extends JFrame implements ActionListener{
    	//
    	ButtonGroup buttongroup_type_client; 
    	//
    	private JPanel panel_choix_client; 
    	//
    	private JPanel panBoutonAfficher ;
    	//
    	private JPanel panel_final; 
    	//
    	private JLabel LAB_choix_client ; 
    	//
    	private JRadioButton b1; 
    	//
    	private JRadioButton b2; 
    	//
    	private JButton boutonAfficher; 
    	//
    	private String type_client; 
    	//
    	private GridBagConstraints gbc ;  
    	//
    	 ArrayList listeClients;  
    	//declarationde la variable qui va contenir la requête de selection des clients particuliers 
    	private String requete_1; 
    	//declaration de la variable qui va contenir le resultat de la requête 
    	 ResultSet rs ; 
    	 // declaration de la variable de type Statement
    	 private  Statement stmt=null; 
     
    	public fenetre_selection_clients(){
     
    		this.setTitle("Choix de clients"); 
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    		//panel_final = new JPanel(new GridBagLayout()); 
     
    		panel_choix_client = new JPanel(new GridLayout(0,1)); 
     
    		LAB_choix_client = new JLabel("Veuillez choisir un type de client"); 
     
    		b1 = new JRadioButton("clients particuliers", false); 
    		panel_choix_client.add(b1); 
    		b1.setActionCommand("particuliers"); 
     
    		b2 = new JRadioButton("clients entreprises ", false); 
    		panel_choix_client.add(b2); 
    		b2.setActionCommand("entreprises"); 
    		buttongroup_type_client = new ButtonGroup(); 
    		buttongroup_type_client.add(b1); 
    		buttongroup_type_client.add(b2); 
     
     
     
     
    		panBoutonAfficher = new JPanel( new FlowLayout(FlowLayout.CENTER)); 
    		boutonAfficher = new JButton("AFFICHER"); 
    		boutonAfficher.addActionListener(this); 
    		panBoutonAfficher.add(boutonAfficher); 
     
    		this.getContentPane().add("Center",panel_choix_client); 
    		this.getContentPane().add("North",LAB_choix_client); 
    		this.getContentPane().add("South",panBoutonAfficher); 
     
     
     
    		pack();
    		this.setVisible(true); 
    	}// fin de constructeur 
     
     public void actionPerformed(ActionEvent e) {
     
    	 type_client = this.buttongroup_type_client.getSelection().getActionCommand(); 
    	 System.out.println("le type du client est "+type_client);
    	 Object source = e.getSource(); 
    	 System.out.println("le bouton sur lequel on clique est le bouton Afficher"+(source==boutonAfficher));
    		if(source == boutonAfficher){ 
    		Afficher_clients() ; 
     
    		}// fin de if (source==boutonAfficher)
     }// fin de actionPerformed
     
     public void Afficher_clients(){//throws SQLException{
     
     
    	listeClients = new ArrayList();
     
    	 try
     
    	  {
    	    requete_1 = "select ID_CLI, NOM_CLI, PRENOM_CLI, AD1_CLI, AD2_CLI, AD3_CLI from CLIENTS where TYPE_CLI = '"  +type_client+ "' ";
    	    System.out.println(requete_1);
    	    //String requete_2="select ID_CLI, RAISON_SOC, AD1_CLI, AD2_CLI, AD3_CLI from CLIENTS where TYPE_CLI = '"  +type_client+ "' ";
    	    Connexion_BDD conn = new Connexion_BDD(); 
    	   System.out.println("la connexion est " + conn); 
    	   conn.Connecter_BDD();
    	  System.out.println("la connexion est fermée"+conn.getConnexionSQL().isClosed());
     
    	  // L'exécution d'une requête SQL s'effectue via un objet de la classe java.sql.Statement .
    	   //C'est l'objet Connection qui nous fournira une référence d'objet Statement (à ne pas instancier directement ). Exemple : 
    		//   Statement stat = con.createStatement();  
    	   System.out.println(conn.getConnexionSQL()); 
    	   stmt = conn.getConnexionSQL().createStatement();
     
     
    	   rs = stmt.executeQuery(requete_1);
    	   int step = rs.getRow();
    	   System.out.println("le nombre de lignes du result set est "+step);
    	    System.out.println("il y a bien un autre resultat dans le resultset"+rs.next());
    	  //  System.out.println(rs.)
    	   while(rs.next())
    	    {
    	      listeClients.add(new Client(rs));
    	    }// fin de while
     
     
    	   for(int i=0; i<listeClients.size();i++){
     
    		   ((Client)listeClients.get(i)).lancerEnigme();
     
     
    	    }//fin de for     
     
    	  }// fin de try 
     
     
     
     
    	 catch(Exception e){
    			System.out.println("le message d'erreur est le suivant "+ e.toString());
    			System.out.println("voici une autre information"+e.getStackTrace());
    		}// fin de catch
     
    	 }//fin de AfficherClients
     
     }// fin de classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    package package_selection_clients;
    import java.util.*; 
    import java.sql.*;
     
    public class Connexion_BDD {
    	private String id_connexion;
    	// declaration de la variable ConnexionSQL qui va contenir l'adresse d' une instance de la classe Connection 
    	// pour l'instant elle est initiallisée à null
     
     
    	private Connection ConnexionSQL = null;
     
     
     
    	public Connexion_BDD(){}// constructeur par défaut 
     
    // création du getter qui va récuperer  l'adresse de l'instance de la classe Connection créée
     
    	public Connection getConnexionSQL(){
     
    		return ConnexionSQL;
    	}
     
     
     
    	public void Connecter_BDD(){
     
    		try {
    			//L'interaction à un système de gestion de base de données réquiert en général au moins quatre étapes :
    			// 1-Chargement du pilote
     
    		    //2-Etablissement de la connexion
     
    		   // 3-Exécution d'une requête
     
    		    //4-Exploitation des résultats 
    			System.out.println("chargement  drivers.......");
    			//1- chargement du pilote 
    			//On charge généralement le pilote par son nom; dans notre cas, il s'agit du driver driver odbc inclus dans le jdk 
    			//la variable driverOdbc possède le modificateur final , ce qui signifie que c'est une constante; on ne peut donc pas modifier sa valeur 
    			final String driverOdbc= "sun.jdbc.odbc.JdbcOdbcDriver"; // driver odbc inclus dans le jdk 
     
    			  // Autochargement du driver
    			Class.forName(driverOdbc).newInstance();
    			System.out.println("drivers chargés");
    			//Une fois le driver chargé en mémoire, nous pouvons obtenir une connexion via la méthode de classe getConnection() 
    			//de la classe DriverManager 
    			//L'instruction de création d'une connexion à la BDD est de la forme 
    			 //Connection con = DriverManager.getConnection(URL, "user", "passwd");
    			 // URL : url de connexion de la forme jdbc:sous-protocole:sous-nom
    			 // sous-protocole:identification du pilote: dans notre cas le nom du pilote(driver) est "odbc" 
    			 // sous-nom  :  informations nécessaires au pilote pour la connexion (chemin, port, nom) 
    			 // "passwd" : Mot de passe 
    			 // "user"   : Nom de l'utilisateur référencé par la base 
     
    			//on constate pour l'instant qu'il n'y a pas de mot de passe , ni de nom d'utilisateur précisé , dans la chaine de connexion
    			ConnexionSQL = DriverManager.getConnection("jdbc:odbc:bdd_clients_1","","");
    			System.out.println("connection établie:" + ConnexionSQL);
     
     
    		}//fin de try
     
    		catch(Exception sqle){
    			System.out.println("la connexion n a pas pu être établie"+ sqle.getMessage());
     
    		}// fin de catch
     
    	}// fin de fonction Connecter_BDD
    //	---------------------------	
     
    }// fin de classe Connexion_BDD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    package package_selection_clients;
    import java.sql.*;
    import java.util.ArrayList;
    import java.awt.*;
    import javax.swing.JOptionPane;
    import javax.swing.JTextPane;
     
    public class Client {
     
    	private JTextPane jTextPane1;
    	private String texte;   
    	public String id_client; 
    	public String nom_client;
    	public String prenom_client;
    	public String adresse_1_client;
    	public String adresse_2_client;
    	public String adresse_3_client;
    	public String type_client;
     
     
    	public Client(ResultSet res_set)throws SQLException{
    		id_client=res_set.getString(1); 
    		nom_client=res_set.getString(2);
    		prenom_client=res_set.getString(3);
    		adresse_1_client=res_set.getString(4);
    		adresse_2_client=res_set.getString(5);
    		adresse_3_client=res_set.getString(6);
    		type_client=res_set.getString(7) ;
     
    		texte = id_client + nom_client + prenom_client + adresse_1_client + adresse_2_client + adresse_3_client + type_client ; 
    	}// fin de constructeur de la classe Client
     
     
     
    	public void lancerEnigme(){
     
    		//On crée le textfield qui contiendra le texte de l'énigme
    	    jTextPane1 = new JTextPane();
    	    jTextPane1.setText(texte);
    	    jTextPane1.setPreferredSize(new Dimension(400, 200));
     
     
    	}// fin de lancer enigme
     
     
    }// fin de classe
    Merci beaucoup de m'aider à voir clair et à résoudre cette difficulté
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Liste de champs vide malgré un filtre correct
    Par icare_1er dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/07/2007, 20h44
  2. JDBC - ResultSet vide - Requete bonne
    Par Rouxxx dans le forum JDBC
    Réponses: 8
    Dernier message: 02/07/2006, 12h25
  3. probleme de resultset vide
    Par bredsac dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 28/06/2006, 03h00
  4. SQLServer - JDBC - Resultset vide - Requete bonne
    Par Rouxxx dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/05/2006, 19h51
  5. [JDBC] ResultSet Vide avec Oracle9 et WebSphere5
    Par mcrbe dans le forum Websphere
    Réponses: 5
    Dernier message: 24/04/2006, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo