我希望能够选择任何行,专门选择1行并编辑其数据。
数据位于SQL表中。
我正在使用tableview和scenebuilder 2。
问题:我选择的行不会使用新字段进行更新。不确定如果它识别出选择。
代码发布在
下面对不起,如果我不完全清楚,我将很乐意在必要时进一步解释
Connection c;
data = FXCollections.observableArrayList();
for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
//We are using non property style for making dynamic table
final int j = i;
TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i + 1));
col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(j).toString());
}
});
tableview.getColumns().addAll(col);
System.out.println("Column [" + i + "] ");
}
/********************************
* Data added to ObservableList *
********************************/
while (rs.next()) {
//Iterate Row
ObservableList<String> row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
//Iterate Column
row.add(rs.getString(i));
}
System.out.println("Row [1] added " + row);
data.add(row);
}
//FINALLY ADDED TO TableView
tableview.setItems(data);
c.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error on Building Data");
}
////选择行和编辑
String a =(String)tableview.getSelectionModel().getSelectedCells().toString();
String query = "UPDATE Frontdesk SET CustomerName = ? , Zip = ? , Make =? , Model=? , PhoneNumber =? WHERE CustomerName =? ";
PreparedStatement preparedStmt = c.prepareStatement(query);
preparedStmt.setString(1, txtCus);
preparedStmt.setString(2, txtzi);
preparedStmt.setString(3, txtMod);
preparedStmt.setString(4, txtMak);
preparedStmt.setString(5, txtPun);
preparedStmt.setString(6, a);
preparedStmt.executeUpdate();
这是该应用程序的屏幕截图: