日期:2014-05-20  浏览次数:20785 次

JAVA SE连接ACCESS数据库无法插入新记录(主键问题)
主键是自动生成的,就是多加一条记录,主键自动+1

[Microsoft][ODBC Microsoft Access 驱动程序] 查询值的数目与目标字段中的数目不同。

我有6列,但是第一列是主键,因为主键我不知道怎么获取,
因为主键并不是我自己输入的,所以不知道咋办,

我贴下SQL代码

Java code

//插入数据库的SQL代码
    String sql2="insert into customer values('?"+"','"+a_1+"','"+a_2+"','"+a_3+"','"+a_4+"','"+a_5+"')";



我是想通过JAVA se的界面,点击按钮插入数据到ACCESS数据库里面去。

请问怎么做?
我只要把主键这一行写上就行了,上面的问号代表主键,但是我不知道怎么写

我下面贴下功能代码

Java code
//定义数据库修改保存类
            public boolean updateSql()
            {
             try{
                 
                 //从文本框中获取数据
                 customer cu2=new customer();
                 ColorTest ct1=new ColorTest();
 
                 connAccess.conn1();
                 con=connAccess.con;
                 
                 int cuId = 0;
                 
                 
                 //获取自动增加的ID编号的方法
                 ps1=con.prepareStatement(ct1.getSql2());
                
                 
                 /*ResultSet rs2=ps1.getGeneratedKeys();
                 while(rs2.next())
                     
                 {
     
                     cuId=rs2.getInt(1);
                 }
                 
                 ps1.setInt(1,cuId);
                 */
                 ps1.executeUpdate();

                 return true;
             
            }
            catch(Exception sqle)
            {
             System.out.println(sqle.toString());
             return false;
            }
            
            }


------解决方案--------------------
sql语句改下就行了,多看看sql基本语法的书就行
String sql2="insert into customer (列1字段,列2字段……列5字段)values('"+a_1+"','"+a_2+"','"+a_3+"','"+a_4+"','"+a_5+"')";
------解决方案--------------------
把所有列,除主键外都写出来。

String sql="insert into customer (列1字段,列2字段……列5字段)values('"+a1+"','"+a2+"+...+a_5+"')";

主键会自动增长。

------解决方案--------------------
主键会自动增长,所以不用你插,不管他。楼上正解