ramy04804001
Messages postés65Date d'inscriptionmardi 13 avril 2010StatutMembreDernière intervention29 mars 2011
-
26 mai 2010 à 04:32
ramy04804001
Messages postés65Date d'inscriptionmardi 13 avril 2010StatutMembreDernière intervention29 mars 2011
-
26 mai 2010 à 07:42
Salut les amis ,
je veut récupérer des données de ma base dans un JComboBox mais j'ai trouvé cette exeption <java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] État de curseur non valide> ma base est générer sur accées
-->Voici mon code:
public void remplirMotClé(){
try
{
// Ouvrir une connexion avec la base de données
DBUtil db = new DBUtil();
//requete de chargement
String requeteInsert ="select MC from Mot_Clé ";
// passage de la requête de chargement
while(db.consulter(requeteInsert).next()){
cbx_mc.addItem(db.consulter(requeteInsert).getString(1));
}
db.fermer();
} catch (SQLException e) {
e.printStackTrace();
}
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 26 mai 2010 à 07:26
Salut,
Aîe, y'a un problème dans ton approche : ta fonction consulter permet de renvoyer un resultSet, ok, mais il ne faut surtout pas l'appeler à chaque tour de boucle. Non seulement tu vas tomber dans une boucle infinie, tu vas bouffer toutes les ressources de ta machine (vu que tu ne libère jamais le resultset), mais en plus ca ne fera jamais ce que tu pense que ca fera !
Donc :
public void remplirMotClé(){
try
{
// Ouvrir une connexion avec la base de données
DBUtil db = new DBUtil();
//requete de chargement
String requeteInsert ="select MC from Mot_Clé ";
ResultSet result = db.consulter(requeteInsert);
// passage de la requête de chargement
while(result.next()){
cbx_mc.addItem(result.getString(1));
}
result.close();
db.fermer();
} catch (SQLException e) {
e.printStackTrace();
}
}
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
/* Connexion */
try {
con = DriverManager.getConnection(url);
/*Création du Statement */
try {
stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE , ResultSet.CONCUR_UPDATABLE);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Impossible de créer une instruction");
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Echec de connexion");
}
}
/* Passer une requete de consultation */
public ResultSet consulter(String sql)
{
ResultSet rs = null;
try {
rs =stm.executeQuery(sql);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Problème de passage de requête");
}
return rs;
}
/* Passer une requete de modification */
public int modifier(String sql)
{
int n=-1;
try {
n =stm.executeUpdate(sql);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Problème de passage de requête");
}
return n;
}
/* Fermer la connexion */
public void fermer()
{
if (con != null)
try {
con.close();
} catch (SQLException e)
{
JOptionPane.showMessageDialog(null, "Problème de fermeture de la connexion");
}
}
}