Insertion d'une zone de texte sur un champ d'une de données

Résolu
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 - 8 déc. 2005 à 02:52
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 9 déc. 2005 à 09:13
bonjour,j'ai un petit pobleme avec mon application java conncté à une base de donnes acces ,le probleme c'est quand je remplis ma zone de texte et j'enregistre tout ca se passe bien ,j'ai mis mon code dans le boutton enregistrer le voilà :

// la creation de la connexion
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection dbcon=DriverManager.getConnection("jdbc:odbc:mabase1");
String nom,prenom;
nom=txtnom.getText();
prenom=txtprenom.getText();
Statement s=dbcon.createStatement();
s.executeUpdate("insert into client values("+nom+","+prenom+")");
dbcon.close();

il me donne l'erreur suivante " java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu."
vous pouvez m'aider svp je suis debutant merci a vous

8 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 déc. 2005 à 09:27
Salut,



En sql quand tu traite une chaine de caractères tu doit la mettre entre des ' ' exemple :


INSTERT INTO MA_TABLE VALUES('dupond', 'charles');



donc pour ton cas :

s.executeUpdate("INSERT INTO client VALUES('"+nom+"','"+prenom+"')");



WORA
3
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
8 déc. 2005 à 12:39
bonjour, merci beaucoup monsieur j'ai modifier mon code avec ce que tu m'as donné et ca marche très bien , merci encore
0
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
8 déc. 2005 à 12:47
bonjour, ca va avec mon premier pobleme j'ai roncontré un autre , c'est l'invers mnt , je veux afficher un champ de la base de donnés sur une zone de texte(c'est une recherche par nom) et j'ai tapé le code suivant :

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection dbcon=DriverManager.getConnection("jdbc:odbc:mabase1");
String nom;
nom=txtnom.getText();
Statement s=dbcon.createStatement();
ResultSet rs=s.executeQuery("select nomclt,prenomclt,telephone from client where nomclt="+nom+"");
txtprenom.setText("prenomclt");
dbcon.close();

il me donne l'ereur suivante : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
merci à vous
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 déc. 2005 à 14:03
Re,



meme problème

en sql pour TOUTES manipulations quand tu traite une chaine de caractères il faut des ' '



exemple :





INSTERT INTO MA_TABLE VALUES('dupond', 'charles');

SELECTE nomctl,prenomctl,telephone FROM client where nomctl='toto'

UPDATE client SET nomctl='tutu' where nomctl='toto'

.....



et si tu veux faire ca proprement met des ` ` exemple



INSTERT INTO `client` VALUES('dupond', 'charles');


SELECTE `nomctl`,`prenomctl`,`telephone` FROM `client` WHERE `nomctl`='toto';


UPDATE `client` SET `nomctl`='tutu' WHERE `nomctl`='toto'






WORA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
8 déc. 2005 à 17:03
bonjour monsieur twinuts ,j'ai essayé avec le code que tu m'as donné mais ca marche pas en faite mon pobleme c'est que je veux faire une recherche je taple le nom sur la zone du travail du nom et quand je vais kliquer sur le boutton recherche il va m'afficher le prenom et le numero de telephone dans les 2 autre zone de texte moi je veux savoir comme afficher ces 2 champs sur les 2 zone de texte
merci monsieur
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 déc. 2005 à 21:53
Re,



avant de commencer c'est bien les "monsieur" mais tu peut dire simplement twinuts ca me va très bien





imaginons la table client suivante :



------------------------------------------------------------------------------------

| ID | NOM
| PRENOM |
TELEPHONE |

-------------------------------------------------------------------------------------

| 0 | DUPOND |
Paul |
0000000000 |
-------------------------------------------------------------------------------------

| 1 |
DOE |
Jhon |
6666666666 |

-------------------------------------------------------------------------------------



la clée unique de la table est la colonne ID(il est préférable de mettre une clée unique)



pour récupérer les données de DUPOND tu utilise la requete suivante



SELECT `NOM`,`PRENOM`,`TELEPHONE` FROM `client` WHERE `ID`=0;

ou encore

SELECT * FROM `client` WHERE `ID`=0;

ou encore

SELECT * FROM `client` WHERE `NOM`='DUPOND` AND `PRENOM`='Paul';

ou encore

SELECT `NOM`,`PRENOM`,`TELEPHONE` FROM `client` WHERE `NOM`='DUPOND' AND `PRENOM`='Paul';

ou encore

SELECT * FROM `client` WHERE `NOM`='DUPOND';

.......







maintenant avec du java :



.................................

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

Connection dbCon = DriverManager.getConnection("jdbc:odbc:mabase1");

.................................

nom=txtNom.getText();

if(nom.trim().compareTo("") != 0){ //pour ne pas faire de requete dans le vide

Statement s = dbCon.createStatement();

ResultSet rs = s.executeQuery("SELECT * FROM `client` WHERE `NOM`='" + nom + "';");

txtPrenom.setText(rs.getString("PRENOM"));

txtTelephone.setText(rs.getString("TELEPHONE"));

}else

JOptionPane.showMessage(



null, //ou un objet de type JFrame,JDialog,JPanel et
j'en passe


"Impossible de
chercher sans un nom",//le message


"Erreur
Saisie",//le titre



JOptionPane.ERROR_MESSAGE

);

..................................

dbCon.close();


enfin un truc du gout


WORA
0
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
9 déc. 2005 à 01:44
salut twinuts , merci pour ton aide , j'ai compris tout ce que tu veux me dire ,en fait pour les requete sql moi j'utilise ( select * from client where id =....) sans faire des ' ' pour les champs et ca marche bien mais bon c'est pas ca le probleme ,j'ai copier ton code et il se compli sans pobleme mais quand je click sur le boutton chercher il me donne l'erreur suivant
java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] Etat de curseur non valide

merci à toi
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 déc. 2005 à 09:13
Salut,



Oki alors tu va changer le dbCon.createStatement();

par dbCon.createStatement(

ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);



et pour essayer de comprendre à quoi cela correspond va ici :

http://java.developpez.com/faq/jdbc/?page=resultset#typesRS




WORA
0
Rejoignez-nous