java.sql.SQLException:列计数与第1行的值计数不匹配

时间:2010-10-25 11:24:36

标签: java mysql jdbc

我正在尝试使用JDBC更新值,并且我继续为不同的表和不同的模式获得相同的错误。

假设我有一张这样的表

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

然后,我尝试添加一行:

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

列的数量是相同的,并且在文本中没有其他逗号,但我继续得到错误“java.sql.SQLException:列数与第1行的值计数不匹配”

我确信这很简单,可能是因为我设法让它与单列一起使用...

提前致谢

3 个答案:

答案 0 :(得分:7)

有问题:

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

你错过了Text1和Text2之间的一些引用:

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

答案 1 :(得分:3)

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

它应该这样注意'这个

PreparedStatement是更好的选择。

答案 2 :(得分:1)

你的报价错了......

将执行以下操作:

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

你必须写:

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