繁体   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