把pstm=con.prepareStatement("insert into tblMsg values(?,?,?,?)"); 改成 pstm=con.prepareStatement("insert into tblMsg(字段1,字段2,字段3,字段4) values(?,?,?,?)"); 其中:字段1,字段2,字段3,字段4分别是要插入的四个字段的字段名
我按照你们的意思做了,但还是报错,我是这样写的: PreparedStatement pstm=null; pstm=con.prepareStatement("insert into tblMsg(from,to,title,content) values(?,?,?,?)"); pstm.setString(1,this.from); pstm.setString(2,this.to); pstm.setString(3,this.title); pstm.setString(4,this.content); pstm.executeUpdate(); //from,to,title,content是字段名 错误信息: java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误。 //----------------------------------------------------------------- 同样这段语句,我只要将自动编号字段删除,程序就可以正常运行!
我曾经类似用过SQL Server数据库没有这个问题
insert into tblMsg(from,to,title,content) values(?,?,?,?)"); 很明显写错了呀,里面有个括号是全角的了, insert into tblMsg(from,to,title,content) values(?,?,?,?)"); 这样才对吧
改成
pstm=con.prepareStatement("insert into tblMsg(字段1,字段2,字段3,字段4) values(?,?,?,?)");
其中:字段1,字段2,字段3,字段4分别是要插入的四个字段的字段名
PreparedStatement pstm=null;
pstm=con.prepareStatement("insert into tblMsg(from,to,title,content) values(?,?,?,?)");
pstm.setString(1,this.from);
pstm.setString(2,this.to);
pstm.setString(3,this.title);
pstm.setString(4,this.content);
pstm.executeUpdate();
//from,to,title,content是字段名
错误信息:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误。
//-----------------------------------------------------------------
同样这段语句,我只要将自动编号字段删除,程序就可以正常运行!
很明显写错了呀,里面有个括号是全角的了,
insert into tblMsg(from,to,title,content) values(?,?,?,?)");
这样才对吧
是输入的时候失误,在源程序中没输错!
pstm.setString(2,this.to);
pstm.setString(3,this.title);
pstm.setString(4,this.content);
这里面的this.from,this.to,this.title,this.content都是什么呀
this.from,this.to,this.title,this.content//是类中的属性.
为了区分表中的字段,所以写成这样的形式.当然不要this. 也可以.
insert into tblMsg values(,?,?,?,?)看看什么效果
to realyfly(含泪海) :
谢谢您!表tblMsg中字段名和类中的属性名相同导致的错误!
真没想到,是这样的错误!!