2017-10-17 91 views
1

我试图使用SQL将值插入到表中。用户输入除自动编号(ID)的主键以外的值。通过Netbeans自动将主键分配给MS-Access中的条目

if (lstCarD.getSelectedIndex() == -1) { 
     obj.updateTable("insert into tblSCars values('" + txtBrand.getText() + "','" + txtModel.getText() + "'," + Integer.parseInt(txtSpeed.getText()) + "," + Integer.parseInt(txtWeight.getText()) + "," + Double.parseDouble(txtAcc.getText()) + "," + Integer.parseInt(txtPower.getText()) + ") "); 
    } else { 
      obj.updateTable("UPDATE tblSCars SET tblSCars.Brand ='"+ txtBrand.getText()+"','"+ txtModel.getText() + "'," + Integer.parseInt(txtSpeed.getText()) + "," + Integer.parseInt(txtWeight.getText()) + "," + Double.parseDouble(txtAcc.getText()) + "," + Integer.parseInt(txtPower.getText()) +"WHERE RunnerId="+txtBrand.getText()); 
    } 
    pnlStart.setSelectedIndex(2); 
    lstSuperCars.clear(); 
    getCars();  

使我有以下错误:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.3.1 row column count mismatch 

它可以是允许用户输入的字段“ID”或从MS-Access表中删除领域(工作,如果我来解决做这个)。

我想弄清楚如何让Netbeans自动分配主键字段'ID',而不需要用户输入或删除它。

tblSCars - 我正在进入的表格。 班级中没有其他地方出现过“ID”字段。

在此先感谢。

回答

1

该错误是一种不言自明的说明,您没有指定要插入的字段,并且您在插入/更新查询中指定的字段数量不等于表中字段的总数。

您可以指定下列方式字段:

insert into tblSCars(Field1, Field2 ... FieldN) VALUES(Value1, Value2 ... ValueN) 
UPDATE tblSCars SET Field1 = Value1, Field2 = Value2, etc.