2012-05-16 48 views
-2

请帮我找到语法错​​误,我尽我所能指出,但不能。Sql插入到声明错误

String sql= "insert into ctable (" 

     +"id," 
     +"name," 
     +"address," 
     +"phone," 
     +"email," 
     +"sale_Limit)" 

     + "values (" +txtid.getText()+ ",'" +txtname.getText()+ "','" +txtaddress.getText() 

     +"','" + txtphone.getText()+ "','"+ txtemail.getText()+ "','"+txtsaleLimit.getText() 

     + "')"; 
+2

什么是您收到的错误消息? – Erica

+1

错误是什么? – Chip

+0

错误消息是:插入语句中的语法错误。 – codo

回答

6

直接问题很可能会缺失报价。

较大问题是,你直接在你的SQL中包含数据。您应该使用参数化SQL代替(通过PreparedStatement),使用avoid SQL injection attacks,将数据(值)分开代码(SQL),并避免由于字符串转换造成的数据丢失。

+0

感谢Jon分享链接,我发现我的预期太多了。 – codo

1

忘记单引号?

" +txtid.getText()+ " 
+1

id始终是一个整数,不应该有一个单引号 – Nick

+0

如果id是整数...它的sysntax错误... .... –

+0

它预计是一个整数标识符,所以这不会是一个问题。 –

-1

INSERT INTO TABLE_NAME(FIELD1,FIELD2,...字段N) VALUES (值1,值2,...值N);

从字段名称部分删除引号和加号。

+0

你有没有注意到他正在用java编写一个字符串? – Pablo

1

也许你需要"sale_Limit)""values"

+0

至少,在SQL服务器和oracle中不是这样,但我还没有尝试过使用其他数据库。 – Pablo

-1

+之间的空间 “sale_Limit)” - 应该是空间,更改为:

+"sale_Limit) " 

“值(” + txtid.getText()+”, “” - 缺少引号,更改为:

"values ('" +txtid.getText()+ ",'" 
+0

-1其他答案的副本和缺少结束报价(如果报价有问题) – Aprillion