当前位置: 技术问答>java相关
JSP与Accesss数据库中的一个问题?请各位帮忙解决!
来源: 互联网 发布时间:2017-04-21
本文导语: 我的JSP中用到了对Access数据库进行插入数据的操作,Access表中有一“自动编号”的类型,也就是说不需要人为的通过JSP插入的,请问这个问题怎么解决? 下面是一部分有关数据库的代码: try { Class.forName("sun.jdbc...
我的JSP中用到了对Access数据库进行插入数据的操作,Access表中有一“自动编号”的类型,也就是说不需要人为的通过JSP插入的,请问这个问题怎么解决?
下面是一部分有关数据库的代码:
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:FriendMaking","","");
String sql="insert into userInfor values(?,?,?,?,?);";
PreparedStatement statement=con.prepareStatement(sql);
statement.setString(2,MyUtil.big5ToUnicode(id));
statement.setString(3,passworda);
statement.setString(4,email);
statement.setString(5,MyUtil.big5ToUnicode(city));
statement.executeUpdate();
statement.close();
con.close();
}catch(Exception e)
{
out.println(e.getMessage());
}
}
其中要插入的第一个数据项是“自动编号”型的,上面的这个程序报错
错误是:Microsoft][ODBC Microsoft Access Driver]COUNT 字段不正确 ,请问怎么解决这个问题,怎么让他自动插入的一项数据。
下面是一部分有关数据库的代码:
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:FriendMaking","","");
String sql="insert into userInfor values(?,?,?,?,?);";
PreparedStatement statement=con.prepareStatement(sql);
statement.setString(2,MyUtil.big5ToUnicode(id));
statement.setString(3,passworda);
statement.setString(4,email);
statement.setString(5,MyUtil.big5ToUnicode(city));
statement.executeUpdate();
statement.close();
con.close();
}catch(Exception e)
{
out.println(e.getMessage());
}
}
其中要插入的第一个数据项是“自动编号”型的,上面的这个程序报错
错误是:Microsoft][ODBC Microsoft Access Driver]COUNT 字段不正确 ,请问怎么解决这个问题,怎么让他自动插入的一项数据。
|
把SQL语句改一下,自动编号字段不要写出来,这样应该可以。
|
String sql="insert into userInfor values(?,?,?,?,?);";
这里要写全insert into userInfor(....) values(?,?,?,?)
一一对应,不要省这一点力气.不然肯定容易出错(不然系统插入的可能会不是你想象的顺序),然后后面用的不是
statement.setString(2,MyUtil.big5ToUnicode(id));
statement.setString(3,passworda);
statement.setString(4,email);
statement.setString(5,MyUtil.big5ToUnicode(city));
而是
statement.setString(1,MyUtil.big5ToUnicode(id));
statement.setString(2,passworda);
statement.setString(3,email);
statement.setString(4,MyUtil.big5ToUnicode(city));
要一一对应
这里要写全insert into userInfor(....) values(?,?,?,?)
一一对应,不要省这一点力气.不然肯定容易出错(不然系统插入的可能会不是你想象的顺序),然后后面用的不是
statement.setString(2,MyUtil.big5ToUnicode(id));
statement.setString(3,passworda);
statement.setString(4,email);
statement.setString(5,MyUtil.big5ToUnicode(city));
而是
statement.setString(1,MyUtil.big5ToUnicode(id));
statement.setString(2,passworda);
statement.setString(3,email);
statement.setString(4,MyUtil.big5ToUnicode(city));
要一一对应