![](/img/trans.png)
[英]Q: How to get key value from a HashMap of a ComboBox and save it to the database
[英]Get combobox value from database
我想從數據庫中獲取ComboBox
值。 我正在嘗試以下代碼,它不會返回任何錯誤,但不會返回添加到 ComboBox 的項目。
@FXML
private ComboBox<List> laptopos_combo;
public void filloscombo() throws SQLException
{
String connectionUrl = "jdbc:sqlserver://WIN\\SQLEXPRESS:1433;database=itinventory;" +
"user=sa;"+ "password=Varpal@1234;";
Connection connect= DriverManager.getConnection(connectionUrl);
String query = "Select * from operatingsystem";
PreparedStatement pst = connect.prepareStatement(query);
// log.conn().prepareStatement(query);
ResultSet os = pst.executeQuery();
while(os.next())
{
((List<String>) laptopos_combo).add(os.getString("os"));
}
}
public ArrayList<Object> selectAllObjects() {
ArrayList<Object> list = new ArrayList<>();
try {
String connectionUrl
="jdbc:sqlserver://WIN\\SQLEXPRESS:1433;database=itinventory;" +
"user=sa;"+ "password=Varpal@1234;";
Connection connect= DriverManager.getConnection(connectionUrl);
Statement stmt = connect.createStatement();
ResultSet result = stmt.executeQuery("SELECT QUERY");
while (result.next()) {
Object obj = new Object();
obj.setId(result.getInt(1));
//setters
list.add(payment);
}
} catch (SQLException se) {
se.printStackTrace();
} finally {
if (connect != null) {
try {
connect.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
return list;
}
然后你可以調用 function,將它保存到另一個 Arraylist 並像這樣設置:
comboBox.setItems(arraylist);
comboB.setValue(arraylist.get(0));
我認為您需要將 ComboBox 的項目類型從 List 更改為 String,因為您想將字符串值添加到 ComboBox,試試這個:
@FXML
private ComboBox<String> laptopos_combo;
public void filloscombo() throws SQLException {
String connectionUrl ="jdbc:sqlserver://WIN\\SQLEXPRESS:1433;database=itinventory;" +
"user=sa;"+ "password=Varpal@1234;";
Connection connect= DriverManager.getConnection(connectionUrl);
String query="Select * from operatingsystem";
PreparedStatement pst = connect.prepareStatement(query);
ResultSet os = pst.executeQuery();
laptopos_combo.getItems().clear(); // Add this line to remove all items before you add the database one
while(os.next()) {
laptopos_combo.getItems().add(os.getString("os"));
}
}
我嘗試了下面的代碼,但只顯示第一個值。 我通過實現可初始化的接口來做到這一點
try
{
String connectionUrl = "jdbc:sqlserver://WIN\\SQLEXPRESS:1433;database=itinventory;" +
"user=sa;"+ "password=Varpal@1234;";
Connection connect= DriverManager.getConnection(connectionUrl);
String query="Select * from operatingsystem";
PreparedStatement pst = connect.prepareStatement(query);
// log.conn().prepareStatement(query);
ResultSet os = pst.executeQuery();
while(os.next())
{
ObservableList<String> value =
FXCollections.observableArrayList(os.getString("os"));
System.out.println(value);
laptopos_combo.setItems(value);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.