[英]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.