簡體   English   中英

sql WHERE子句無法正常工作

[英]sql WHERE clause not working properly

我是Java和sql的新手。 我寫了一個where子句,但是它似乎無法正常工作。

"SELECT Threat_Hazard_ID FROM Threats_Hazards_Categories WHERE Hazard = '" + hz + "'";

基於先前的comboBox“ hz”中的選擇,我想提取我給它的ID。 然而,似乎只是取消了所做的選擇。

這是我編寫的代碼部分,可以自由填充以提供執行此任務的更好方法。

comboBox.addItemListener(new ItemListener() {
    @Override
    public void itemStateChanged(ItemEvent arg0) {
        try {
            Object hz = comboBox.getSelectedItem();
            System.out.println(hz);
            c = DriverManager.getConnection("jdbc:sqlite:MAAWB.db");
            stmt = c.createStatement();
            String Hid = "SELECT Threat_Hazard_ID FROM Threats_Hazards_Categories WHERE Hazard = '" + hz + "'";
            hidtest = stmt.executeQuery(Hid);
            int test = hidtest.getInt("Threat_Hazzard_ID");
            String hazardCP = "SELECT HazardCP FROM Hazard_CP WHERE Threat_Hazard_Id = " + Hid;
            if(radioButton.isSelected() != false) {
                while(hcp.next()){
                    Hcp = hcp.getString("HazardCP");
                    comboBox_1.removeItem(Tcp);
                    comboBox_1.addItem(Hcp);

對象hz = comboBox.getSelectedItem();

“ hz”是引用對象,此處不是字符串。 但是,在您的SQL中,您將其用作String對象(嘗試連接)。

隱藏字符串=“從Threats_Hazards_Categories中選擇SELECT Threat_Hazard_ID WHERE Hazard ='” + hz +“'”;

您需要使用字符串值“ hz”(選定的項目作為字符串),然后它應該可以正常工作。 另外,查看組合框中已插入的內容(字符串?)。 首先,您會在組合框中插入任何類型的對象。 如果不是String,則需要首先從插入的項目中獲取String值。 您可以嘗試以下方法:

字符串hz =(String)comboBox.getSelectedItem();

但這全都取決於首先插入組合框的項目。

改變這個

String Hid = "SELECT Threat_Hazard_ID FROM Threats_Hazards_Categories WHERE Hazard = '" + hz + "'";

String Hid = "SELECT           Threat_Hazard_ID FROM Threats_Hazards_Categories WHERE Hazard = '" + hz.toString()+ "'";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM