您好我是java db netbeans的初学者。
我有两个表,即事务和检查表 在事务表中,我有名为[transID],[PayToOrder],[BankCode],[Checknumber]的列。 在检查表中,我有名为[checknumber],[dateissued],[amount],[transID]的列。 我使用表格作为条目。
这是我用来在数据库中插入数据的代码块。
private void btnAddRecordActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String trID = txtTransID.getText();
int ID = Integer.parseInt(trID);
String pto = txtPtO.getText();
String bc = txtBankCode.getText();
String cn = txtCheckNum.getText();
int chNum = Integer.parseInt(cn);
String amount = txtAmount.getText();
int amnt = Integer.parseInt(amount);
String dates = (String) txtDate.getValue();
try{
stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmt2 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql1 = "Select * From transactions";
String sql2 = "Select * From checks";
rs1 = stmt1.executeQuery(sql1);
rs2 = stmt2.executeQuery(sql2);
rs1.moveToInsertRow();
rs2.moveToInsertRow();
rs1.updateInt("transID", ID);
rs1.updateString("PAYTOORDER", pto);
rs1.updateString("BANKCODE", bc);
rs1.updateInt("checknumber", chNum);
rs2.updateInt("checknumber", chNum);
rs2.updateInt("AMOUNT", amnt);
rs2.updateString("DATEISSUED", dates);
rs2.updateInt("transID", ID);
rs1.insertRow();
rs2.insertRow();
stmt1.close();
stmt2.close();
rs1.close();
rs2.close();
JOptionPane.showMessageDialog(this, "Successfully Recorded!");
}
catch(SQLException err){
JOptionPane.showMessageDialog(this, err.getMessage());
}
}
我一直在收到错误:
“在表格上插入'TRANSACTIONS'导致密钥(输入数据)违反外键约束'CHECKNUMBER'。
如果有人可以在这部分启发我
谢谢
Rommel Ando
答案 0 :(得分:0)
您正在尝试使用表CHECKS中不存在的CHECKNUMBER将数据插入到TRANSACTIONS表中。
因此,如果您拥有上述关系,则无法以这种方式插入此数据,因为transID和Checknumber对于两者都是相同的。
您可以删除其中一个外键,也可以将checknumber设置为NULL以插入事务,插入检查,然后将事务检查号更新为应该是