Ошибка преобразования при преобразовании «недопустимого» значения «Residential» в тип данных int - PullRequest
0 голосов
/ 10 ноября 2018

Как мне преобразовать данные, которые даны из строки набора результатов. Я пытаюсь показать выпадающий список GUI в виде текста, но дать ему значение 1 и 2

то, что я хочу, чтобы это показывалось для выпадающего выбора, верно https://i.imgur.com/gDKAkDX.png

но мне нужны фактические значения 1 и 2 соответственно

Затем мне нужно поместить эти значения обратно в ключ f базы данных, который позволяет только int ...

final ObservableList options = FXCollections.observableArrayList();


public void fillComboBox() {
    Connection c;


    try {
        Connection conn = null;
        Statement stmt = null;
        String queryx = "Select CusType_ID, CusTypeName from CustomerType";

        ResultSet jrs = c.createStatement().executeQuery(queryx);

        while (jrs.next()) {

            String custyID = jrs.getString("CusType_ID");
            String custyN = jrs.getString("CusTypeName");


            options.add(new MyObject(custyID,custyN));
            typeBox.setItems(options);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}



String sql = "INSERT INTO Customer [CustomerType_ID]) VALUES" typeBox.getValue() +"')";

1 Ответ

0 голосов
/ 10 ноября 2018

Сначала создайте класс для хранения CusType_ID и CusTypeName в выпадающем списке (выпадающий список)

public class MyObject {

private String key;
private String value;

public MyObject(String key, String value) {
    this.key = key;
    this.text = value;
}

public String getKey(){
return key ;
}

@Override
public String toString() {
    return value;
  }
}

затем сохраните значение из вашего запроса

     String queryx = "Select CusType_ID, CusTypeName from CustomerType";

    ResultSet rs = c.createStatement().executeQuery(queryx);

    while (rs.next()) {
        int recordNumber = 1;
        int recNumber =2;

        String sx = rs.getString("CusTypeName");
        String customerID = rs.getString("CusType_ID");


        typeBox.addItem(new MyObject(customerID, sx));


        }

Наконец, верните свою ценность выбранному предмету и сохраните ее в новом sql

Object item = comboBox.getSelectedItem();
String value = ((MyObject)item).getKey();
String sql = "INSERT INTO Customer (CustomerType_ID) VALUES ("+ 
value +");" ; 
...