récupération d'un contenu d'un texte de saisie
Bonjour,
Dans une classe java appelée entrée_MDP(pot de passe), je propose à un utilisateur de saisir son nom dans un Textfield.
Ce nom doit ensuite être inséré dans une table "Identification"dansune base de données Access, dans le cham Nom .
J'ai crée la connexion à la base de données mais je ne sais comment récupérer le contenu du textfield saisi par l'utilisateur.
Voici le code utilisé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
package TP_ENIGME;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Entree_MDP extends JDialog implements ActionListener {
private JPanel p2;
private JTextField TF_MDP;
private JLabel LAB_MDP;
private JButton b2;
private Dimension Dim1;
public Entree_MDP() {
setTitle("Entree Nom utilisateur");
setResizable(false); //un utilisateur ne peut pas modifier la taille
// du Jdialog-Le JTextField garde alors les mêmes dimensions
/*this.getContentPane().setLayout(new FlowLayout());*/
p2 = new JPanel();
TF_MDP = new JTextField();
Dim1 = new Dimension(200, 20);
TF_MDP.setPreferredSize(Dim1); //pour qu'on ne puisse pas également changer les dimensions du TextField
LAB_MDP = new JLabel("Veuillez entrer votre nom d'utilisateur");
b2 = new JButton("CONTINUER");
b2.addActionListener(this);
this.getContentPane().add(LAB_MDP, "North");
this.getContentPane().add(TF_MDP, "Center");
this.getContentPane().add(b2, "South");
this.show();
setVisible(true);
try {
String requete = "insert Nom into Identification";
Connection connexionSQL = Connexion_BDD.getConnexion().getConnexionSQL();
System.out.println("la connexion est " + connexionSQL);
System.out.println(connexionSQL.isClosed());
Statement stmt = connexionSQL.createStatement();
System.out.println(requete);
ResultSet rs = stmt.executeQuery(requete);
}
catch ( Exception sqle) {System.out.println("SQL Error pendant la connection:" + sqle.getMessage());
}// fin de catch
} //fin du constructeur
//connexionSQL.close();
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == b2) {
BouttonAction2();
}
} // fin de méthode actionPerformed
public void BouttonAction2() {
Entree_jeu EJ1 = new Entree_jeu();
EJ1.show();
this.setVisible(false);
} // fin de méthode BouttonAction2
public static void main(String arg[]) {
Entree_MDP MDP1 = new Entree_MDP();
MDP1.pack();
MDP1.setVisible(true);
}
}fin de classe Entree_MDP |
Si vous pouviez m'aider sur ce point dce serait très gentil à vous.
Merci encore de votre aide.
Cordialement.
Nathalie
} // fin de classe Entree_MDP
récupération du conten u d'un textfield
Merci de ton aide!
J'avais déjà fait cela bien que cela n'apparaisse pas dans le code, le problème est au niveau de la requête sql, comment exprimer le conte u de du textfield pour qu'il s'insère dans le champ "Nom".
Merci beaucoup à toi de ton aide.
Cordialement.
Nathalie
récupération d'un contenu d'un texte de saisie
Bonjour,
Et merci beaucoup de votre aide.
Pourriez vous m'expliquer ce que fait le prepared statement.
Je suis désolée mais je n'ai pas pris la peine de chercher par moi même, notamment ccette partie du code
Code:
1 2 3 4 5
|
PreparedStatement psmt = connectionSQL.prepareStatement(query);
psmt.setString(1,TF_MDP.getText()); // à quoi correspond le 1
psmt.execute(); |
récupération d'un contenu d'un texte de saisie
Bonjour,
Le ? correspond il à un caractère ou à une chaîne de caractères?
sinon, j'ai testé le code suivant :
Code:
1 2 3 4
|
Code:
String query = "INSERT INTO Identification (Nom_utilisateur) VALUES ('"+TF_MDP.getText()+"');"; |
Il se trouve que suite à cette partie de code, je vois bien ecrit le texte de la requête avec le récupération du contenu du textbox, mais rien ne se passe au niveau de la base de données!!(aucune insertion);
voici le message reçu:
INSERT INTO Identification(Nom_utilisateur) VALUES ('harbonne');
SQL Error pendant la connection:[Microsoft][Pilote ODBC Microsoft Access] L'instruction INSERT INTO contient le nom de champ inconnu suivant : 'Nom_utilisateur'. Assurez-vous que vous avez correctement saisi le nom, puis recommencez l'opération.
Je dois préciser que
1-le premier champ de la table Identification est bien un numéro qui s'incrémente automatiquement et qui est une clé primaire
2-peut être est il bien de reprendre la même requête en utilisant le ? et en tenant compte qu'il y a un premier champ qui doit s'incrémenter automatiquement.
Merci beaucoup à vous de votre aide.
cordialement.
Nathalie
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
try {
String requete = "insert into Identification(Nom_utilisateur) values ('"+TF_MDP.getText()+"');
Connection connexionSQL = Connexion_BDD.getConnexion().getConnexionSQL();
System.out.println("la connexion est " + connexionSQL);
System.out.println(connexionSQL.isClosed());
Statement stmt = connexionSQL.createStatement();
System.out.println(requete);
ResultSet rs = stmt.executeQuery(requete);
}
catch ( Exception sqle) {System.out.println("SQL Error pendant la connection:" + sqle.getMessage());
}// fin de catch |
récupération d'un contenu d'un texte de saisie
Rebonjour,
Je viens d'arranger une chose; en fait la base de données vers laquelle je pointais n'était pas la bonne (erreur de chemin),; je viens d'arranger cela mais maintenant j'ai le message suivant :
INSERT INTO Identification(Nom_utilisateur) VALUES ('harbonne')
SQL Error pendant la connection:No ResultSet was produced
pourriez vous me dire où il y a paroblème?
merci beaucoup à vous.
Cordialement.
Nathalie
récupération d'un contenu d'un texte de saisie
Bonjour et merci,
Je reçois le message suivant :
The method updateQuery is undifined for the type statement
Que me conseilles tu donc pour remplir le result set avec un update query?
J'ai utilisé ce code qui fonctionne très bien mais n'utilise pas updatequery
Code:
1 2 3 4 5 6
|
String query = "INSERT INTO identification (Nom) VALUES (?);";
PreparedStatement psmt = connectionSQL.prepareStatement(query);
psmt.setString(1,TF_MDP.getText());
psmt.execute(); |
Cordialement.
Nathalie