Insérer le contenu d'un TextField dans une base de données

cs_fredom Messages postés 11 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 22 août 2006 - 28 mai 2006 à 18:33
cs_fredom Messages postés 11 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 22 août 2006 - 29 mai 2006 à 03:09
Bonjour,

J'ai un problème concernant les bases de données: j'veux afficher ce que j'écris dans un TextField de la partie graphique de mon programme dans une base de donnée Access. Voici une partie de mon programme:

// JDBC
    Connection          connection = null;
    Statement           statement  = null;
 
    // Exécuter connect
    System.out.println("connect...");
 
  try {
   // Liaison Access



   // Définir pilote
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   
   // Etablir connexion
   // Nom DB, identification, mot de passe
   connection =
    DriverManager.getConnection("jdbc:odbc:gestionchambre", "", "");
    
   // Créer Statement pour instruction SQL
   statement = connection.createStatement();
  }
  catch (ClassNotFoundException err) {
   System.err.println("\nPilote Db non trouvé!");
   System.err.println(err);
  }
  catch (SQLException err) {
     System.err.println("\nConnect impossible");
     System.err.println(err);
  }
    try
    {
    BufferedWriter out=new BufferedWriter(new FileWriter("texte_intermediaire.txt"));
    String nouvclientnom = chbrenom.getText();
    out.write(""+nouvclientnom+"");
    out.close();



    BufferedReader in=new BufferedReader(new FileReader("texte_intermediaire.txt"));
    String fichierdonnee=in.readLine();
    String z1;
    StringTokenizer t= new StringTokenizer(fichierdonnee," ");
    z1=t.nextToken();
    System.out.println(""+z1+"");
    System.out.println("insert ...");
   int Enregistrements;
   String sql = "insert into Adresses values("+z1+","+z1+","+z1+","+z1+","+z1+","+z1+","+z1+","+z1+","+z1+")";
   int w;
   w=2;
   Enregistrements = statement.executeUpdate("insert into Adresses values("+w+","+w+","+w+","+w+","+w+","+w+","+w+","+w+","+w+")");
   Enregistrements = statement.executeUpdate("insert into Adresses values('rer','rer','rer','rer','rer','rer','rer','rer','rer')");
   Enregistrements = statement.executeUpdate(sql);
   
    in.close();
    }
    
    



  catch (SQLException err)
   {
     System.err.println("\nErreur SQL ");
     System.err.println(err);
  }



    
   
    catch (FileNotFoundException err)
    {System.out.println("Erreur : le fichier n'existe pas!\n"+err);
    }
    catch (IOException err)
    {System.out.println("Erreur : \n"+err);
    }


Qd je veux insérer la variable "sql" dans mon programme, ça ne marche pas et j'ai une erreur sql alors que les deux premiers enregistrements s'insèrent dans cette base de données!!! Que se passe t-il? Avez vous la solution?? Remarque: je passe par un fichier texte (j'écris d'abord dans ce fichier ce que j'écris dans le TextField, j'lis le fichier et j'veux afficher le contenu dans la base de données) car j'avais la même erreur sans passer par là, et j'pensais que ça allait marcher!!

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 mai 2006 à 21:06
Hum, y'a un truc qui me chose dans ton code : qu'est-ce que tu cherche à faire avec cà :
statement.executeUpdate("insert into Adresses values("+w+","+w+","+w+","+w+","+w+","+w+","+w+","+w+","+w+")");

Car ce code va insérer un nouvel élément dans la table Adresses avec la même valeur pour tout les champs : le contenu de w au moment de l'appel !

Peut-être que certains champs de ta table sont des chaînes et non des nombres (ta requête ne fonctionne que s'il s'agit d'entiers !).

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
cs_fredom Messages postés 11 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 22 août 2006
29 mai 2006 à 03:09
Merci pour avoir répondu,
La ligne dans laquelle je rentre la variable w ne sert à rien, c'était juste pour tester. Comment insérer une chaine et non des entiers? Que faut t-il modifier?
0
Rejoignez-nous
A voir également