2017-11-07 17 views
0

さて、私がしたいのは、行を選択すると(下の図)、列 'itemTag'のデータの行がクエリーされます。これはそのアイテムへのユニークな参照であり、正しいアイテムをデータベースから削除することはこれだけです。選択されたテーブルビューの行がmySqlデータベースから削除されました

画像:あなたが見ることができるように Tale Columns

、itemtagという名前の列があります。削除ボタンは、以下のコードがあります:ここでは

public void deleteItem() throws SQLException{ 
    int selectedIndex = tableView1.getSelectionModel().getSelectedIndex(); 
    String selectedItem = itemTagCol.getText(); 
    if(selectedIndex >= 0){ 
     con = handler.getConnection(); 
     String query1 = "DELETE FROM stock WHERE itemtag = ?";   
     pst = con.prepareStatement(query1);    
     pst.setString(1, selectedItem); 
     pst.execute();  
     tableView1.getItems().remove(selectedIndex); 
    } else { 
     Alert alert = new Alert(AlertType.ERROR); 
     alert.setTitle("ERROR:"); 
     alert.setHeaderText("No selection was made."); 
     alert.setContentText("You have not selected an item to delete. Please try again."); 
     alert.showAndWait(); 
    } 
} 

はのtableViewのコードです:

:ここ

private TableView<addStockMaster> tableView1;  
@FXML private TableColumn<?,?>itemIdCol; 
@FXML private TableColumn<?,?> makeCol; 
@FXML private TableColumn<?,?> modelCol; 
@FXML private TableColumn<?,?> refCol; 
@FXML private TableColumn<?,?> itemTagCol; 

private ObservableList<addStockMaster> data; 

private Connection con; 
private PreparedStatement pst; 
private DbHandlers handler; 

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    handler = new DbHandlers(); 
    tableView1.setEditable(true); 
    data = FXCollections.observableArrayList(); 
    tableData(); 
    loadData(); 
} 

public void tableData(){ 
    itemIdCol.setCellValueFactory(new PropertyValueFactory<>("itemiD")); 
    makeCol.setCellValueFactory(new PropertyValueFactory<>("itemName")); 
    modelCol.setCellValueFactory(new PropertyValueFactory<>("itemModel")); 
    refCol.setCellValueFactory(new PropertyValueFactory<>("itemRef")); 
    itemTagCol.setCellValueFactory(new PropertyValueFactory<>("itemTag")); 

} 

はちょうどあなたが必要な場合は、すべてのアイテムを取得するコードは、ということです

public class addStockMaster { 
private int itemiD; 
private String itemName; 
private String itemModel; 
private String itemRef; 
private String itemTag; 

public addStockMaster(int itemiD, String itemName, String itemModel, String itemRef, String itemTag) { 
    this.itemiD = itemiD; 
    this.itemName = itemName; 
    this.itemModel = itemModel; 
    this.itemRef = itemRef; 
    this.itemTag = itemTag; 
} 

public addStockMaster() { 
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
} 

/** 
* @return the itemiD 
*/ 
public int getItemiD() { 
    return itemiD; 
} 

/** 
* @param itemiD the itemiD to set 
*/ 
public void setItemiD(int itemiD) { 
    this.itemiD = itemiD; 
} 

/** 
* @return the itemName 
*/ 
public String getItemName() { 
    return itemName; 
} 

/** 
* @param itemName the itemName to set 
*/ 
public void setItemName(String itemName) { 
    this.itemName = itemName; 
} 

/** 
* @return the itemModel 
*/ 
public String getItemModel() { 
    return itemModel; 
} 

/** 
* @param itemModel the itemModel to set 
*/ 
public void setItemModel(String itemModel) { 
    this.itemModel = itemModel; 
} 

/** 
* @return the itemRef 
*/ 
public String getItemRef() { 
    return itemRef; 
} 

/** 
* @param itemRef the itemRef to set 
*/ 
public void setItemRef(String itemRef) { 
    this.itemRef = itemRef; 
} 

/** 
* @return the itemTag 
*/ 
public String getItemTag() { 
    return itemTag; 
} 

/** 
* @param itemTag the itemTag to set 
*/ 
public void setItemTag(String itemTag) { 
    this.itemTag = itemTag; 
} 
} 

mySqlデータベースから選択した行データをどのように削除することができますか。私はこれでエラーがない、それはtableViewから行を削除しますが、SQLからは削除しません。私はString selectedItem = itemTagCol.getText();行で間違ったことをしていると思います。

+0

「query1」 'String' do' System.out.println(selectedItem); '< - これはあなたの問題を指摘する必要があります – Sedrick

答えて

0

itemTagを取得する必要があります。

addStockMaster asm = (addStockMaster)tvMainTable.getSelectionModel().getSelectedItem(); 
String tempItemTag = asm.getItemTag(); 
関連する問題