Java

Résolu
nina_fa Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
gdstechno Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   15
 
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   Statut Membre Dernière intervention  
 
rien comprie et ca marche pas!merci
0
Mycki Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   46
 
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   Statut Membre Dernière intervention   15
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   15
 
Normalement comme ceci :

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

Cdt,
GDS
0