2010-10-25 7 views
4

J'essaie de mettre à jour les valeurs à l'aide de JDBC et je continue d'obtenir la même erreur pour différentes tables et avec différents schémas.java.sql.SQLException: le nombre de colonnes ne correspond pas au nombre de valeurs de la ligne 1

Disons que j'ai une table comme celui-ci

+----------------+-------------+------+-----+---------+-------+ 
| Field   | Type  | Null | Key | Default | Extra | 
+----------------+-------------+------+-----+---------+-------+ 
| field1   | varchar(50) | YES |  | NULL |  | 
| field2   | varchar(50) | YES |  | NULL |  | 
+----------------+-------------+------+-----+---------+-------+ 

puis, je tente d'ajouter une ligne:

String Text1 = text1; 
String Text2 = text2; 
String Query_String = "INSERT INTO tablename(field1,field2) VALUES ('"+Text1+","+Text2+"')"; 
Query_Statement.executeUpdate(Query_String); 

le nombre de colonnes est le même, et aussi dans le texte il ne sont pas d'autres virgules, mais je continue à obtenir l'erreur "java.sql.SQLException: le nombre de colonnes ne correspond pas au nombre de valeur à la ligne 1"

Je suis sûr que c'est quelque chose de simple, probablement sur la syntaxe depuis que je a réussi à le faire fonctionner avec une seule colonne ...

Merci à l'avance

Répondre

6

Il y a quelque chose de mal avec:

String Query_String = "INSERT INTO tablename(field1,field2) VALUES ('"+Text1+","+Text2+"')"; 

Vous avez manqué quelques citations entre Texte1 et Texte2:

String Query_String = "INSERT INTO tablename(field1,field2) VALUES ('"+Text1+"','"+Text2+"')"; 
3
String Query_String = "INSERT INTO tablename(field1,field2) VALUES ("'"+Text1+"' , '"+Text2+"');"; 

Il est comme cette note ' cette

PreparedStatement serait meilleur choix.

+0

+1 pour suggérer une instruction préparée. – mezmo

1

vous avez une erreur avec vos citations ...

ce qui suit sera exécuté:

INSERT INTO tablename(field1,field2) VALUES ('Text1,Text2');

vous devez écrire:

String Query_String = "INSERT INTO tablename(field1,field2) 
VALUES ('"+Text1+"','"+Text2+"')"

Questions connexes