JAVA sous netbeans et base de donnée access

Fermé
donuts - 8 janv. 2009 à 14:17
 denis - 14 janv. 2009 à 14:28
Bonjour,
j'ai établi une connexion avec ma base de donnée dans une fonction connect()
et j'ai tenté de faire une requête de lecture de donnée dans la base




public ResultSet SQLSelect(String sql) throws SQLException {

Statement creerconnec = null;

ResultSet RS = null;

try {

creerconnec = connection.createStatement();
RS = creerconnec.executeQuery(" SELECT Nom du prof,Prènom From Table1 ");

int execut = creerconnec.executeUpdate(sql);
System.out.println("liste des professeurs :");

while(RS.next()){

System.out.println(RS.getString("Nom du prof,Prènom"));

}
}

catch (SQLException e) {

RS.close();

creerconnec.close();

return null;

}
return null;
}




lorsque je lance mon programme rien ne s'affiche quelqu'un peut me mettre sur la voie ?
A voir également:

1 réponse

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
8 janv. 2009 à 16:07
Fait un System.out.println(e.getMessage()); dans ton bloc
catch (SQLException e) {

RS.close();

creerconnec.close();

return null;

}.
Ou tout autre te permettant de verifier si tu passe par le bloc catch.
Et vérifie aussi que Access soit bien lancé, avec la bonne base ouverte.

Pitite question: ya pas un passage de paramètre que tu zappe? parce rien n'indique dans ce code que tu te connecte à une certaine base. Tu ne l'a pas défini en tout cas
0
salut merci d'avoir repondu

enfaite j'ai une fonction connect() juste avant

public boolean connect()
{

try
{
// Chargement du driver ODBC

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// Connexion à la base
//ici se trouve l'adresse de la base de donnée "BDD.mdb"
String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*BDD.mdb)}; DBQ=" + chemin;
connection = DriverManager.getConnection(connectionString);
}
//erreur class résidu du driver ODBC non trouvé
catch (ClassNotFoundException e)
{

System.out.println("Problème avec le driver ODBC");

return false;

}
//erreur de connection à la base
catch (SQLException e)


{

System.out.println("Impossible de se connecter à la base");

return false;
}
return true;
}
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161 > donuts
8 janv. 2009 à 17:02
He beh certes, mais dans ta deuxième fonction, ou dans ton main (parce qu'il faut un main pour que sa se lance a un moment donné), il faut faire un connect(); sinon il va pas se connecter.
0
donuts > freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016
10 janv. 2009 à 15:55
pas bete ça ! lol

nan mais le soucis c'est que j'utilise des jframe avec netbeans (j'ai pas vraiment de main mon main c'est ma première fenêtre)
et quand je met

public class debut extends javax.swing.JFrame {

/** Creates new form debut */
public debut() {
initComponents();
connect();
}
public String chemin;
public Connection connection;
//constructeur
public debut(String chemin){
this.chemin = chemin;

}

ça ne fonctionne pas j'ai rajouté un fprintf pour afficher un petit message au lancement de la fonction connect() et j'ai aucun résultat :(

qu'est que j'ai oublié à ton avis ?
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161 > donuts
11 janv. 2009 à 02:25
Si tu programme pas en thread, ou si tu n'appele rien après ton connect, sa sert a rien.
Il faut savoir que ce que tu fait dans un bloc reste dans le bloc. En gros, ton connect te connect a ta bdd, mais si tu fait rien après, il sort et tu ne peut plus utiliser la connexion.
Il faudrait que ta fonction connect te renvoie quelque chose pour utiliser la connection, par exemple un objet qui te permettrait de faire des requetes
0
denis > freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016
14 janv. 2009 à 14:28
bonjour tout d'abord merci d'avoir répondu à mes postes

j'ai réglé le problème de connexion

mon objet connexion n'appelait pas les drivers

j'ai remplacé
connexion=DriverManager.getConnection(connectingString);
par
connexion=DriverManager.getConnection("jdbc:odbc:albums","","");

et mon programme se connecte bien à ma base Access par la fonction connect()

mais maintenant j'ai un autre problème...

j'ai mis une requête dans un try catch mais je n'arrive pas à avoir la fonction executeQuery

try{
Statement etat = connection.createStatement();
ResultSet rs = etat.?????;

}
catch(SQLExeption e){
JOptionPane.showmessageDialog(this,"erreur d'execution de la requête"+e.detMassage());
}

while (rs.next()){
System.out.print(rs.getstring(1));........etc
0