请帮我找到语法错误,我尽力指出但不能。
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()
+ "')";
答案 0 :(得分:6)
立即问题可能会丢失引号。
更大的问题是您直接在SQL中包含数据。您应该使用参数化SQL(通过PreparedStatement
),avoid SQL injection attacks,从数据(值)中分离代码(SQL),并避免因字符串转换而导致数据丢失。
答案 1 :(得分:4)
name
是Access中的保留字,因此您应该将列名更改为其他人。
正如其他答案所指出的那样,我建议您调查PreparedStatement以避免可能的SQL Injection,而PreparedStatement也会帮助您逃避特殊字符,例如'
char中避免SQL语法错误。
答案 2 :(得分:1)
忘记单引号?
" +txtid.getText()+ "
答案 3 :(得分:1)
您可能需要"sale_Limit )"
和"values"
答案 4 :(得分:-1)
INSERT INTO table_name(field1,field2,... fieldN) VALUES (value1,value2,... valueN);
从字段名称部分删除引号和附加符号。
答案 5 :(得分:-1)
+“sale_Limit)” - 应该是空格,改为:
+"sale_Limit ) "
“values(”+ txtid.getText()+“,'” - 缺少引号,更改为:
"values ('" +txtid.getText()+ ",'"