Java

Résolu/Fermé
nina_fa Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 7 septembre 2008 - 17 déc. 2007 à 16:21
gdstechno Messages postés 29 Date d'inscription samedi 15 décembre 2007 Statut Membre Dernière intervention 11 janvier 2008 - 18 déc. 2007 à 06:53
Bonjour,
java+base de donnees access
mon probleme un textfield qui contient un nombre comment convertir le string
String Num =jTextField1.getText() ;
String nom=jTextField2.getText();
String prenom=jTextField3.getText();
requete.executeUpdate("insert into Table1(num,nom,prenom ) VALUES('Num ','nom','prenom' ) ");
et l'erreur et la suivante:[Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère.
A voir également:

6 réponses

gdstechno Messages postés 29 Date d'inscription samedi 15 décembre 2007 Statut Membre Dernière intervention 11 janvier 2008 15
17 déc. 2007 à 16:37
Bonjour,
Je ne connais pas trop java mais me débrouille plutot bien en vb.
Il me semble que votre requête "requete.executeUpdate("insert into Table1(num,nom,prenom ) VALUES('Num ','nom','prenom' ) "); "
devrait être :
requete.executeUpdate("insert into Table1(num,nom,prenom ) VALUES(cdbl(Num),nom,prenom ) ");
Cdt,
GDS
0
nina_fa Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 7 septembre 2008
17 déc. 2007 à 16:48
rien comprie et ca marche pas!merci
0
Mycki Messages postés 113 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 17 décembre 2007 46
17 déc. 2007 à 17:06
Je suppose que Num est une variable non ? Parce que si ce n'est pas le cas, si c'est la chaine de caractère "Num", alors tu vas avoir du mal à l'insérer dans un champ contenant un integer ou un double...
Pour ta requete, fais un StringBuffer, comme ça, t'optimise déjà la mémoire allouée à la requête :

StringBuffer sbRequete = new StringBuffer();

sbRequete.append( "INSERT INTO " );
sbRequete.append( "Table1(num, nom, prenom) " );
sbRequete.append( "VALUES('" );
sbRequete.append( "Integer.parseInt( Num ) ', " );
sbRequete.append( "'Nom', ");
sbRequete.append( "'Prenom'));" );

requete.executeUpdate( sbRequete.toString() );
0
gdstechno Messages postés 29 Date d'inscription samedi 15 décembre 2007 Statut Membre Dernière intervention 11 janvier 2008 15
17 déc. 2007 à 17:09
Je présume que vous avez défini la table "Table1" comme suit :

num zone numérique
nom zone texte
prénom zone texte

D'autre part vous définissez la zone d'entrée JAVA comme étant un string (donc texte)
String Num =jTextField1.getText() ;

Il vous faut donc convertir la zone "Num" de texte en numérique et pour ce faire il existe en vb une instruction "cdbl" (convert double) permettant de réaliser cette opération.

Qui plus est il semble que la syntaxe de la requête doive être :

requete.executeUpdate("insert into Table1"+" VALUES("+Num+","+nom+","+prenom+" ) ");

Pourriez-vous essayer ?
Cdt,
GDS
0

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

Posez votre question
nina_fa Messages postés 38 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 7 septembre 2008
17 déc. 2007 à 17:28
dis moi je doit ecrit requete.executeUpdate("insert into Table1"+" VALUES("+Num+","+nom+","+prenom+" ) "); avec l'instruction "cdbl":comment
0
gdstechno Messages postés 29 Date d'inscription samedi 15 décembre 2007 Statut Membre Dernière intervention 11 janvier 2008 15
18 déc. 2007 à 06:53
Normalement comme ceci :

requete.executeUpdate("insert into Table1"+" VALUES(cdbl("+Num+"),"+nom+","+prenom+" ) ");

Cdt,
GDS
0