你这个表有5个字段,你只插入了四个,还使用insert into,那基本上要出错,呵呵。因为,有可能,你想的是from,插入过程中,将这个from字段,却插入到id字段了,结果正好有一个字段没有值,所以告诉你查询数目不对。
应该这么写
pstm = con.prepareStatement("insert into tblMsg(From_Col_Name, To_Col_Name, Title_Col_Name, Content_Col_Name) values(?, ?, ?, ?)");这样,sql就知道该将那个字段插入那个列中了,呵呵,其中,from_col_name代表表中的字段名。
应该这么写
pstm = con.prepareStatement("insert into tblMsg(From_Col_Name, To_Col_Name, Title_Col_Name, Content_Col_Name) values(?, ?, ?, ?)");这样,sql就知道该将那个字段插入那个列中了,呵呵,其中,from_col_name代表表中的字段名。
解决方案 »
- 菜鸟,求前辈帮个忙解决一下,为什么点击按钮会出现好多新的页面
- java 随机取出定义数组中的元素且不重复 然后把取出的元素排序 在输出为TXT文本文件
- 怎样将 GBK 编码的汉字转换成为 UTF-8 编码的汉字?
- 为什么用double,float,BigDecimal分别来实现2.0-1.9,结果却不同?
- java下的一个方法的返回值问题???
- 如何在一个java程序里设置环境变量??
- java静态变量问题
- 初学者问题:怎样配置java环境?
- 请问可以在两个APPLET中使用UDP和TCP连接吗?
- java生成类似xml文档形式
- java中保留小数点后两位用那个函数??
- 我也散分!你当我不会?
我按照你的意思做了,但还是报错,我是这样写的:
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 语句的语法错误。
//-----------------------------------------------------------------
同样这段语句,我只要将自动编号字段删除,程序就可以正常运行!
我该怎样去维护?
pstm=con.prepareStatement("insert into tblMsg(id, from,to,title,content) values(myPrimaryKey.nextVal, ?,?,?,?)");
pstm.setString(1,this.from);
pstm.setString(2,this.to);
pstm.setString(3,this.title);
pstm.setString(4,this.content);
pstm.executeUpdate();这样,就行了,我怀疑在access数据库中,也是这么高的,你再看看,我也在给你看一下,我很少动桌面数据库的,呵呵,老了。
谢谢你!可以告诉我具体的做法吗?
谢谢您!
搞定了!表tblMsg中字段名和类中的属性名相同导致的错误!
真没想到,是这样的错误!!