Java / ajout / BDD
Fermé
Emilie
-
21 avril 2008 à 19:27
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 25 avril 2008 à 12:56
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 25 avril 2008 à 12:56
A voir également:
- Java / ajout / BDD
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel 5360 ✓ - Forum Jeux vidéo
- Java décompiler - Télécharger - Langages
20 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
22 avril 2008 à 10:25
22 avril 2008 à 10:25
Bonjour,
Lorsque tu fais un insert dans une base de donnée, cela ne produit jamais de resultSet en retour.
Donc effectivement, tu as utiliser la méthode executeQuery qui généralement est plutôt réservée pour une requête de sélection et non d'insertion.
Il faut donc que tu utilise executeUpdate sans attendre rien en retour. Un try / catch suffira pour savoir si la requête SQL est correctement effectuée ou non.
Voici le descriptif pour la méthode executeUpdate :
Et voici celle pour executeQuery :
Tu comprends donc maintenant pourquoi tu as une erreur de type 'no result...'
Lorsque tu fais un insert dans une base de donnée, cela ne produit jamais de resultSet en retour.
Donc effectivement, tu as utiliser la méthode executeQuery qui généralement est plutôt réservée pour une requête de sélection et non d'insertion.
Il faut donc que tu utilise executeUpdate sans attendre rien en retour. Un try / catch suffira pour savoir si la requête SQL est correctement effectuée ou non.
Voici le descriptif pour la méthode executeUpdate :
executeUpdate(String sql) Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
Et voici celle pour executeQuery :
ResultSet executeQuery(String sql) Executes the given SQL statement, which returns a single ResultSet object.
Tu comprends donc maintenant pourquoi tu as une erreur de type 'no result...'
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
22 avril 2008 à 15:24
22 avril 2008 à 15:24
A priori si ta requête SQL est bonne et que tes valeurs sont placées dans tes variables tu devrais avoir tes informations enregistrées dans ta base de donneés, non ?
Si tu n'es pas certaine tu peux toujours aller voir dans la base s'il y a bien un enregistrement de plus suite à l'exécution de ta requête.
Si tu n'es pas certaine tu peux toujours aller voir dans la base s'il y a bien un enregistrement de plus suite à l'exécution de ta requête.
RE !!
je suis allée voir dans ma base de données pour voir si les informations étaient bien enregistrées dans la table, mais elles ne le sont pas !! sniff !!! ya t-il d'autres instructions à écrire à la suite de la requête d'ajout pour que les données s'enregistrent dans la base? au sinon d'où pourrait provenir le problème?
merci
Emilie
je suis allée voir dans ma base de données pour voir si les informations étaient bien enregistrées dans la table, mais elles ne le sont pas !! sniff !!! ya t-il d'autres instructions à écrire à la suite de la requête d'ajout pour que les données s'enregistrent dans la base? au sinon d'où pourrait provenir le problème?
merci
Emilie
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
22 avril 2008 à 16:58
22 avril 2008 à 16:58
Ca fait longtemps que j'ai pas fais de JDBC mais il ne me semble pas qu'il y ai autre chose derrière.
Pour avancer dans ton problème il faudrait plutôt que tu test ta requête pour savoir si elle est correcte ou non.
Pour cela, va dans l'interface d'administration de ta base de données tu dois avoir un module pour lancer des requêtes SQL.
Lance la requête que tu essai de faire avec ton code Java (en donnant des valeurs réelles aux propriétés) et regarde si elle s'effectue correctement ou si un message d'erreur apparait.
Pour avancer dans ton problème il faudrait plutôt que tu test ta requête pour savoir si elle est correcte ou non.
Pour cela, va dans l'interface d'administration de ta base de données tu dois avoir un module pour lancer des requêtes SQL.
Lance la requête que tu essai de faire avec ton code Java (en donnant des valeurs réelles aux propriétés) et regarde si elle s'effectue correctement ou si un message d'erreur apparait.
Utilisateur anonyme
22 avril 2008 à 17:25
22 avril 2008 à 17:25
Petite suggestion : Vérifie que les paramètres que tu passes ne sont pas vides ou ne valent pas null.
Non je ne penses pas que mes paramètres soient vides ou null
Je pense que ça serait une bonne idée que je mette ma requête d'ajout !! si ça se trouve c moi qui ait fait une erreur depuis le début... (oups !!) Voici la requête :
String resul = ("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
Merci de votre aide
Emilie
Je pense que ça serait une bonne idée que je mette ma requête d'ajout !! si ça se trouve c moi qui ait fait une erreur depuis le début... (oups !!) Voici la requête :
String resul = ("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
Merci de votre aide
Emilie
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
>
Emilie
22 avril 2008 à 17:39
22 avril 2008 à 17:39
A priori la syntaxe est bonne.
Est ce que tu peux mettre tout le code qui entoure l'exécution de cette requête ?
Est ce que tu peux mettre tout le code qui entoure l'exécution de cette requête ?
Emilie
>
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
22 avril 2008 à 17:46
22 avril 2008 à 17:46
Voici la syntaxe qui entourent ma requête :
String url = "jdbc:odbc:Visites.mdb";
try{
con=DriverManager.getConnection(url,"","");
Statement req = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String resul = ("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
req.executeUpdate(resul);
String url = "jdbc:odbc:Visites.mdb";
try{
con=DriverManager.getConnection(url,"","");
Statement req = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String resul = ("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
req.executeUpdate(resul);
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
>
Emilie
22 avril 2008 à 17:49
22 avril 2008 à 17:49
Ajoute un try {} catch dans ton code, comme ci-dessous et dis nous s'il y a une erreur de marquée :
S'il n'y a pas d'erreur peux-tu nous dire quel est le résultat du retour (l'entier) ? (Normalement le chiffre en retour est le nombre de ligne insérée dans la base de donnée)
try{ int myRes = req.executeUpdate(resul); System.out.println("Retour = "+myRes); }catch (Exception e){ System.err.println("Error : "+e.getMessage()); }
S'il n'y a pas d'erreur peux-tu nous dire quel est le résultat du retour (l'entier) ? (Normalement le chiffre en retour est le nombre de ligne insérée dans la base de donnée)
Emilie
>
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
22 avril 2008 à 17:56
22 avril 2008 à 17:56
Résultat du retour :
Retour = 1
voilà
Emilie
Retour = 1
voilà
Emilie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
22 avril 2008 à 17:30
22 avril 2008 à 17:30
Comme le suggère Alex, es-tu certaine que tu as bien mis les mêmes valeurs que celles issues de ton programme java, essais de les afficher sur la console avant l'exécution de ta requête via le programme.
Pour preperedStatement essaye comme sa
sans plus ni moin de code sa devrai marché. Si tu initialise bien toutes tes variables.
pour vérifier t'a requête, System.out.print(st); ^^
PreparedStatement st =con.prepareStatement ("insert into T_Vi values(?,?,?,?,?,?)"); st.setInt(1, pNoVi); st.setString(2, pLibVi); st.setString(3, pDVi); st.setInt(4, pDureeVi); st.setInt(5, pNbIns); st.setInt(6, pNoDVI); st.executeQuery();
sans plus ni moin de code sa devrai marché. Si tu initialise bien toutes tes variables.
pour vérifier t'a requête, System.out.print(st); ^^
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
24 avril 2008 à 09:40
24 avril 2008 à 09:40
st.setInt(1, pNoVi);
Permet de remplace le premier '?' par la valeur de ta variable nommée 'pNoVi'.
Donc, pas "bien initialiser tes variables", Blue project veut dire qu'il faut que plus haut dans ton code tu as déclaré et renseignée (donnée une valeur) à tes variables pNoVi, pLibVi, pDVi, pDureeVi, pNbIns et pNoDVI.
Ex :
int pNoVi = 2; String pLibVi = "mon lib"; // --- etc...
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
24 avril 2008 à 16:52
24 avril 2008 à 16:52
Ok, et ça marche ou pas ?
Si ce n'est pas le cas peux tu mettre le code de ta classe AVisite ?
Si ce n'est pas le cas peux tu mettre le code de ta classe AVisite ?
package visite;
import java.util.*;
import java.sql.*;
public class AVisite {
private Vector <Visite> vectVisite;
private Vector <Destination> vectDestination;
// Objet permettant la connexion à la base de données.
Connection con;
public AVisite(){
vectVisite = new Vector <Visite>();
vectDestination = new Vector <Destination>();
String url = "jdbc:odbc:Visites.mdb";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"","");
Statement requete = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet resultat=requete.executeQuery("Select NoDestination, LibDestination from T_Destinations");
resultat.beforeFirst();
while (resultat.next()){
// Ajout dans le vecteur à partir de la table T_Destinations.
Destination dest = new Destination(resultat.getInt("NoDestination"), resultat.getString("LibDestination"));
vectDestination.add(dest);
};
Statement req = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet result = req.executeQuery("Select NoVi, LibVi, DVi,DureeVi,NbInscrits,NoDVi from T_Vi");
result.beforeFirst();
while (result.next()){
Visite vis = new Visite(result.getInt("NoVi"), result.getString("LibVi"), result.getString("DVi"),result.getInt("DureeVi"), result.getInt("NbInscrits"), result.getInt("NoDVi"));
vectVisite.add(vis);
}
}
catch(Exception e) {System.out.println(e);}
}
public void nouvelleVisite(int pNoVi, String pLibVi, String pDVi, int pDureeVi, int pNbIns, int pNoDVi){
String url = "jdbc:odbc:Visites.mdb";
try{
con=DriverManager.getConnection(url,"","");
PreparedStatement st =con.prepareStatement("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
st.setInt(1, pNoVi);
st.setString(2, pLibVi);
st.setString(3, pDVi);
st.setInt(4, pDureeVi);
st.setInt(5, pNbIns);
st.setInt(6, pNoDVI);
st.executeUpdate();
con.commit();
st.close();
;
}
catch(SQLException e) {
e.printStackTrace();
}
}
import java.util.*;
import java.sql.*;
public class AVisite {
private Vector <Visite> vectVisite;
private Vector <Destination> vectDestination;
// Objet permettant la connexion à la base de données.
Connection con;
public AVisite(){
vectVisite = new Vector <Visite>();
vectDestination = new Vector <Destination>();
String url = "jdbc:odbc:Visites.mdb";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"","");
Statement requete = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet resultat=requete.executeQuery("Select NoDestination, LibDestination from T_Destinations");
resultat.beforeFirst();
while (resultat.next()){
// Ajout dans le vecteur à partir de la table T_Destinations.
Destination dest = new Destination(resultat.getInt("NoDestination"), resultat.getString("LibDestination"));
vectDestination.add(dest);
};
Statement req = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet result = req.executeQuery("Select NoVi, LibVi, DVi,DureeVi,NbInscrits,NoDVi from T_Vi");
result.beforeFirst();
while (result.next()){
Visite vis = new Visite(result.getInt("NoVi"), result.getString("LibVi"), result.getString("DVi"),result.getInt("DureeVi"), result.getInt("NbInscrits"), result.getInt("NoDVi"));
vectVisite.add(vis);
}
}
catch(Exception e) {System.out.println(e);}
}
public void nouvelleVisite(int pNoVi, String pLibVi, String pDVi, int pDureeVi, int pNbIns, int pNoDVi){
String url = "jdbc:odbc:Visites.mdb";
try{
con=DriverManager.getConnection(url,"","");
PreparedStatement st =con.prepareStatement("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
st.setInt(1, pNoVi);
st.setString(2, pLibVi);
st.setString(3, pDVi);
st.setInt(4, pDureeVi);
st.setInt(5, pNbIns);
st.setInt(6, pNoDVI);
st.executeUpdate();
con.commit();
st.close();
;
}
catch(SQLException e) {
e.printStackTrace();
}
}
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
24 avril 2008 à 17:16
24 avril 2008 à 17:16
Pour ta requête il me semble qu'il t'as été dit de remplacer avec des '?' :
Donc ceci :
Devient :
Donc ceci :
PreparedStatement st =con.prepareStatement("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (" + pNoVi + ", '" + pLibVi + "', '" + pDVi + "'," + pDureeVi + "," + pNbIns + "," + pNoDVi + ")");
Devient :
PreparedStatement st =con.prepareStatement("INSERT INTO T_Vi (NoVi,LibVi, DVi, DureeVi, NbInscrits, NoDVi) VALUES (?,?,?,?,?,?)");
Pardon, j'avais les 2 requêtes à la suite, et j'ai copié la mauvaise !! pardon, j'utilise bien la requête avec des "?", l'autre je l'ai mise en commentaire !!
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
24 avril 2008 à 17:37
24 avril 2008 à 17:37
Et que se passe-t-il ? Toujours rien, pas même un petit message d'erreur ?
Ce que tu peux essayer :
remplacer :
par :
Pour catcher n'importe quel type d'exception.
Aussi, que se passe-t-il si tu inverse ces deux instructions :
devient :
Ce que tu peux essayer :
remplacer :
SQLException
par :
Exception
Pour catcher n'importe quel type d'exception.
Aussi, que se passe-t-il si tu inverse ces deux instructions :
con.commit(); st.close();
devient :
st.close(); con.commit();
Il n'y a aucune erreur qui s'affiche ... même si je change SQLException par Exception ou si j'inverse st.close() et con.commi() .....
Emilie
Emilie
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
24 avril 2008 à 17:59
24 avril 2008 à 17:59
Ben écoute, comment dire... je sèche ^^
Je vois que tu ne met aucun user / mot de passe pour créer la connexion à ta base de données, je ne pense pas que ce soit normal, si ?
Pas de mot de passe je veux bien, mais pas de user Oo
Je vois que tu ne met aucun user / mot de passe pour créer la connexion à ta base de données, je ne pense pas que ce soit normal, si ?
con=DriverManager.getConnection(url,"","");
Pas de mot de passe je veux bien, mais pas de user Oo
Mais pour mes fonctions pour afficher tout marche bien, et je n'est pas mis de nom d'utilisateur .....
Bon alors il y un progres... mais ce n'est pas encore ça !! mdr
Je peux ajouter les données si à la suite de ma fonction d'ajout de nouvelle visite, j'ai une autre fontion...
exemple :
av.nouvelleVisite(27, "Test", "15/10/2008", 7, 20, 4);
av.afficheVisite();
une fois que j'ai fais fais ça, les données s'ajoutent bien, et elle s'affichent bien, mais je ne peux pas utiliser la fonction toute seule ... il est où le problème... je pensait qu'on pouvait utiliser les fonctions séparément?!!
Emilie
Je peux ajouter les données si à la suite de ma fonction d'ajout de nouvelle visite, j'ai une autre fontion...
exemple :
av.nouvelleVisite(27, "Test", "15/10/2008", 7, 20, 4);
av.afficheVisite();
une fois que j'ai fais fais ça, les données s'ajoutent bien, et elle s'affichent bien, mais je ne peux pas utiliser la fonction toute seule ... il est où le problème... je pensait qu'on pouvait utiliser les fonctions séparément?!!
Emilie
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
25 avril 2008 à 10:36
25 avril 2008 à 10:36
J'ai remarqué aussi une chose très importante : dans ton programme tu ouvre à chaque fois une nouvelle connexion dès que tu veux faire quelque chose sur ta base de données : il ne faut pas oublié de fermer cette connexion après utilisation sinon tu vas te retrouver avec plein de connexion ouverte sur ta base de données qui ne servent à rien.
Ca peut éventuellement être la source de ton problème : le fait que les multiples connexion bloquent les mises à jour, et que ces dernières ne se font uniquement lorsque tu fais une autre requête sur ta base.
Sinon, est ce que tu peux mettre ton code, là où tu fais appel à tes différentes fonctions (après initialisation de ton objet av.
Ca peut éventuellement être la source de ton problème : le fait que les multiples connexion bloquent les mises à jour, et que ces dernières ne se font uniquement lorsque tu fais une autre requête sur ta base.
Sinon, est ce que tu peux mettre ton code, là où tu fais appel à tes différentes fonctions (après initialisation de ton objet av.
Bonjour !!!
voici le code où j'appelle les différentes fonctions :
package visite;
public class TestVisite {
public static void main(String[] args) {
AVisite av = new AVisite();
av.nouvelleDestination(20, "Essai");
av.nouvelleVisite(24,"Test","01/05/2008", 11, 21, 1);
av.afficheVisite();
av.afficheDestination();
av.fermerAgence();
}
}
Merci
émilie
voici le code où j'appelle les différentes fonctions :
package visite;
public class TestVisite {
public static void main(String[] args) {
AVisite av = new AVisite();
av.nouvelleDestination(20, "Essai");
av.nouvelleVisite(24,"Test","01/05/2008", 11, 21, 1);
av.afficheVisite();
av.afficheDestination();
av.fermerAgence();
}
}
Merci
émilie
oui donc en regardant en bref le code donc voila quelques erreurs.
<code>
package visite;
import java.util.*;
import java.sql.*;
public class AVisite {
private Vector <Visite> vectVisite;
private Vector <Destination> vectDestination;
Connection con;
public AVisite(){
vectVisite = new Vector <Visite>();
vectDestination = new Vector <Destination>();
String url = "jdbc:odbc:Visites.mdb";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"","");
// prefere utiliser PreparedStatement ^^
PreparedStatement result= con.prepareStatement("Select * from T_Destinations");
ResultSet rs = ps.executeQuery();
while (rs.next ()){
Destination dest = new Destination(result.getInt("NoDestination"), result.getString("LibDestination"));
vectDestination.add(dest);
}
result=con.prepareStatement("Select * from T_Vi");
rs = ps.executeQuery();
while (rs.next()){
Visite vis = new Visite(result.getInt("NoVi"), result.getString("LibVi"),
result.getString("DVi"),result.getInt("DureeVi"),
result.getInt("NbInscrits"), result.getInt("NoDVi"));
vectVisite.add(vis);
}
}
catch(Exception e) {System.out.println(e);}
}
public void nouvelleVisite(int pNoVi, String pLibVi, String pDVi, int pDureeVi, int pNbIns, int pNoDVi){
String url = "jdbc:odbc:Visites.mdb";
try{
con=DriverManager.getConnection(url,"","");
PreparedStatement st =con.prepareStatement("INSERT INTO T_Vi values(?,?,?,?,?,?)");
st.setInt(1, pNoVi);
st.setString(2, pLibVi);
st.setString(3, pDVi);
st.setInt(4, pDureeVi);
st.setInt(5, pNbIns);
st.setInt(6, pNoDVI);
System.out.println(st);
//Regarde si c'est bien le résultat souhaité
st.executeQuery();
}
catch(SQLException e) {
e.printStackTrace();
}
}
}
<code>
package visite;
import java.util.*;
import java.sql.*;
public class AVisite {
private Vector <Visite> vectVisite;
private Vector <Destination> vectDestination;
Connection con;
public AVisite(){
vectVisite = new Vector <Visite>();
vectDestination = new Vector <Destination>();
String url = "jdbc:odbc:Visites.mdb";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"","");
// prefere utiliser PreparedStatement ^^
PreparedStatement result= con.prepareStatement("Select * from T_Destinations");
ResultSet rs = ps.executeQuery();
while (rs.next ()){
Destination dest = new Destination(result.getInt("NoDestination"), result.getString("LibDestination"));
vectDestination.add(dest);
}
result=con.prepareStatement("Select * from T_Vi");
rs = ps.executeQuery();
while (rs.next()){
Visite vis = new Visite(result.getInt("NoVi"), result.getString("LibVi"),
result.getString("DVi"),result.getInt("DureeVi"),
result.getInt("NbInscrits"), result.getInt("NoDVi"));
vectVisite.add(vis);
}
}
catch(Exception e) {System.out.println(e);}
}
public void nouvelleVisite(int pNoVi, String pLibVi, String pDVi, int pDureeVi, int pNbIns, int pNoDVi){
String url = "jdbc:odbc:Visites.mdb";
try{
con=DriverManager.getConnection(url,"","");
PreparedStatement st =con.prepareStatement("INSERT INTO T_Vi values(?,?,?,?,?,?)");
st.setInt(1, pNoVi);
st.setString(2, pLibVi);
st.setString(3, pDVi);
st.setInt(4, pDureeVi);
st.setInt(5, pNbIns);
st.setInt(6, pNoDVI);
System.out.println(st);
//Regarde si c'est bien le résultat souhaité
st.executeQuery();
}
catch(SQLException e) {
e.printStackTrace();
}
}
}
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
25 avril 2008 à 12:56
25 avril 2008 à 12:56
Et as tu corrigé ton code pour fermer tes connexions à la base de données, puis ré-essayer de n'utiliser que la fonction d'ajout pour voir si ça changeait quelque chose ?
22 avril 2008 à 14:54
alors j'ai fais comme tu as dis (enfin je crois !!) bon alors maintenant je n'ai plus d'erreur de type 'no result...' mais le truc maintenant c'est que je ne sais pas comment ajouter les données dans la base de données... La requête à l'air de bien s'exécuter...
merci encore de ton aide
Emilie