有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从数据库向JcomboBox添加项

如何从Access数据库向combobox添加项目

我的代码:

    String sql = "SELECT * FROM Owner,Cars "
        + "WHERE carID=CarID_ "
        + "ORDER BY OwnerName;";
    ResultSet dane = zadanie.executeQuery(sql);
    while (dane.next())
    {
        comboBox_2.addItem(new(dane.getString("year")));
    }
    zadanie.close();
} catch(SQLException sqe) {
    System.out.println("SQl error");
}

但它抛出了“Sql错误” 顺便说一句,这个代码:

    String sql="SELECT * FROM Cars ;";
    ResultSet dane = zadanie.executeQuery(sql);
    while (dane.next())
    {       

        System.out.println(
                dane.getString("CarName")+"\t" +
                dane.getString("year"));

    }
    zadanie.close();
} catch(SQLException sqe) {
    System.out.println("SQl error");
}

工作完美,但如果以这种方式书写,就会显示错误

 comboBox_2.addItem(new String(dane.getString("CarName"))); 
        System.out.println(
                dane.getString("CarName")+"\t" +
                dane.getString("year"));

共 (3) 个答案

  1. # 1 楼答案

    看起来你的SQL有问题。。。该语句是否在Java之外正确执行

    SELECT * FROM owner JOIN cars USING (carID) ORDER BY OwnerName;
    

    也许对你有好处

  2. # 2 楼答案

    WHERE carID = CarID_"的SQL中确实有一个错误。您缺少汽车的实际ID。希望这有帮助

  3. # 3 楼答案

    如果您所在的线程不是EDT,则必须确保在EDT上发布修改Swing组件的事件。实用程序类^{}允许您这样做

    SwingUtilities.invokeLater(new Runnable(){
        @Override
        public void run(){
            comboBox_2.addItem(new(dane.getString("year")));
        }
    });
    

    但这不是你目前的问题。与其打印出无用的消息(例如,SQL error),为什么不打印堆栈跟踪?另外,我建议你仔细阅读^{}