Problen d'insertion de données dans la bd

Fermé
nah01 Messages postés 75 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 2 novembre 2012 - 14 mai 2009 à 11:11
nah01 Messages postés 75 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 2 novembre 2012 - 26 mai 2009 à 15:57
Bonjour, je n'arrive pas à charger les données dans ma bd access via jdk. alors que je pense bien me connecter à elle mais lorsque je valide la requete de mise à jour, je tombe sur l'exception.
svp aider moi à comprendre ce qui cause cela . voilà mon code:

import java.io.*;
import java.sql.*;



public class test
{
public static void main (String[] args) {
String url = "jdbc:odbc:voiture";
Connection cnx=null;
try {
BufferedReader clavier=new BufferedReader(new InputStreamReader(System.in));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//connexion a la bd
cnx = DriverManager.getConnection(url);
Statement stat= cnx.createStatement();
ResultSet resultat= stat.executeQuery("SELECT * from voiture");
while (resultat.next()) {
System.out.println(resultat.getString("Imatriculation")+" "+resultat.getString("marque")+ " "+resultat.getString("coupe"));
}
System.out.println("la connexion a la bd a reussi!!!");

//mise a jour de la bd
///////////////////////
// saisie des valeur

String I,m,c; //les variables de mise a jour

System.out.println("Entrer vos valeurs");
System.out.print(" l'matriculation :");
I = clavier.readLine();
System.out.print(" la marque :");
m = clavier.readLine();
System.out.print(" la coupe :");
c = clavier.readLine();

// creation de la requete d'insertion
Statement ins = cnx.createStatement();
int NbIns ;
NbIns = ins.executeUpdate("INSERT INTO voiture(Imatriculation,marque,coupe)VALUES(I,m,c)");
System.out.println(NbIns+" ligne insérée");
System.out.println("Insertion reussit!!!");
}
catch(Exception e) { System.out.println("Exception"); }
finally {
try {cnx.close();}
catch(SQLException e) {e.printStackTrace();}
}
}
}

4 réponses

Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009 9
14 mai 2009 à 13:57
Commence par séparer tes Try pour savoir où se situe l'erreur... Ca réduira déjà pas mal le champ...

(En déboguage s'entend, pas en prod :) )
0
nah01 Messages postés 75 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 2 novembre 2012 4
16 mai 2009 à 09:13
Salut Mins! merci dabors pour la proposition mais sauf que je ne comprend pas bien tes indications c.a.d comment séparé les try.
j'ai écris mon code en m'inspirant d'un exemple tiré d'un tutorial si tu veux bien m'aider à le faire


merci !!!
0
Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009 9
18 mai 2009 à 17:37
Me suis mal exprimé, pas grave...

Essaye d'abord de remplacer :

NbIns = ins.executeUpdate("INSERT INTO voiture(Imatriculation,marque,coupe)VALUES(I,m,c)");

par

NbIns = ins.executeUpdate("INSERT INTO voiture(Imatriculation,marque,coupe)VALUES('I','m','c')");

et sinon, si tu tombes toujours sur l'exception, essaye peut-être juste de remplacer

catch(Exception e) { System.out.println("Exception"); }

par

catch(Exception e) { System.out.println(e); }

pour savoir quelle exception tu obtiens.
0
nah01 Messages postés 75 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 2 novembre 2012 4
22 mai 2009 à 16:48
salut Mins j'avais déjà remplacé les values(I, m, c) par ('I', 'm','c') et dans ma base de données je retrouve
exactement : I, m, c et non les valeurs saisies dans mon éditeur. mais lorsque je saisie des valeurs du genre:
CE123 : pour l'immatriculation, Toyota: pour la marque ect..., ça prend. Tu comprend donc que se sera fastidieux de le faire à chaque fois bref il ne prend pas en compte mes valeur


merci encore de m'aider!!!
0
Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009 9 > nah01 Messages postés 75 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 2 novembre 2012
22 mai 2009 à 18:01
('"+I+"','"+m+"', '"+c+"')

arf... ^^
0
nah01 > Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009
25 mai 2009 à 13:23
Salut et merci à toi Mins je vais de ce pas essayé!
0
nah01 Messages postés 75 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 2 novembre 2012 4 > Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009
26 mai 2009 à 15:57
tank youuuuuuuuuu!!!!! c'est bon et a plus
0
Pour résumer, la syntaxe "try { } catch(Exception e);" permet d'executer un bloc d'instruction dans le try { .. } et de "catcher" (traduit par "attraper") une éventuelle erreur de type "Exception".
0