EDITED 我更改了 SQL 代码并且它有效,但我得到了异常: "无法设置空表模型
我见过很多非常相似的例子,但不是我需要的那个。 因此我们开始:
这很简单 - 在 InternalFrame 中,我插入代码、项目名称、Teamleiter、描述,然后单击“Teilnehmer”以列出“tbl_teinehmer”表中所有项目的所有成员。仅显示姓氏。
因此,我将相应的数据插入到字段中,列出项目成员并选择将参与我创建的这个新项目的成员。
为了将“teilnehmer”中的数据和选定行插入新表:
private void buttonAnlegenActionPerformed(java.awt.event.ActionEvent evt) {
String data = tbl_teilnehmer.getValueAt(tbl_teilnehmer.getSelectedRow(), 0).toString();
String sql = "INSERT INTO TBL_PROJETO (PROJEKT_ID, PROJEKTNAME, TEAMLEITER, BESCHREIBUNG,**TEILNEHMER**)"; //now it works but I get the exception: cannot set a null TableModell.
+ " VALUES(?,?,?,?,?)";
menu = new HauptMenu();
try{
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, ct.getText());
pst.setString(2, nt.getText());
pst.setString(3, st.getText());
pst.setString(4, beschreibungText.getText());
pst.setString(5, data);
pst.execute();
menu.listaProjetos();
JOptionPane.showMessageDialog(null, "Projekt added to Database");
}
catch(Exception e){
System.out.println(e);
}
try{
conn.close();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
ct.setText("");
nt.setText("");
st.setText("");
}
这是错误:
java.sql.SQLException: Parameter index out of range (5 > number of parameters, which is 4).
也许问题出在 PreparedStatemend 声明上。 我设置了
pst.setString(5, data);
因为它会从可变数据中识别出选定的行,但我猜这是错误的。
最佳答案
按如下操作
pst.setString(0, ct.getText());
pst.setString(1, nt.getText());
pst.setString(2, st.getText());
pst.setString(3, beschreibungText.getText());
pst.setString(4, data);
关于java - 将选定的行插入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30115052/