2017-10-17 132 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.