我无法将数据编辑保存到表视图单元格中。当我编辑这些数据时,我按Enter键,但数据未保存在我的数据库中。我不知道该怎么做。 那是我的代码
public String getValueAt(TableView<Note> table, int column, int row){
return table.getColumns().get(column).getCellObservableValue(row).getValue().toString();
}
@FXML
void updateData(ActionEvent event) throws ClassNotFoundException, SQLException {
String sql = "UPDATE NOTES set note = '"+getValueAt(tableView,2,0)+"', coef = '"+getValueAt(tableView,3,0)+"', total = '"+getValueAt(tableView,4,0)+"', appreciation = '"+getValueAt(tableView,5,0)+"' where noteMatri = '"+getValueAt(tableView,0,0)+"';" ;
Connection con = FirstConnection.Connect();
Statement pst = con.createStatement();
String e = getValueAt(tableView,0,0);
System.out.println(e);
String f = getValueAt(tableView,1,0);
System.out.println(f);
String a = getValueAt(tableView,2,0);
System.out.println(a);
String b = getValueAt(tableView,3,0);
System.out.println(b);
String c = getValueAt(tableView,4,0);
System.out.println(c);
String d = getValueAt(tableView,5,0);
System.out.println(d);
int i = pst.executeUpdate(sql);
if(i == 1){
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Mise � jour effectu�e");
alert.setHeaderText("Enregistrement d'�l�ments");
alert.showAndWait();
}
}
该行已成功受到影响,但是当我查看数据库时,数据未更新。请帮助我找回我做错的事情。
答案 0 :(得分:0)
摘自文档:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableView.html
单元格处于编辑状态后,您最可能感兴趣的下一件事是如何提交或取消正在进行的编辑。作为电池工厂提供者,这是您的责任。您的单元实现将根据用户输入(例如,当用户按下键盘上的Enter或ESC键时)知道编辑何时结束。发生这种情况时,您有责任适当地调用Cell.commitEdit(Object)或Cell.cancelEdit()。
如@jarlh所问,“您要提交吗?”