从数据库SQL填充JList

时间:2012-04-23 10:51:33

标签: java sql swing jdbc jcombobox

我一直在尝试使用我的数据库中存在的信息来填充下拉列表但是却失败了。 我见过多个指南,有一些成功的代码,我无法复制,因为我是一个新手,可能错过了一些步骤。 这就是我目前正在尝试的:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

public class populategui extends JFrame
{
    private JComboBox box;
    private JLabel picture;
    private static String[ ] filename = {rs.next};

    {
        try
    {        
            Class.forName(com.microsoft.jdbc.sqlserver);
            Connection con = (Connection)DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=LIVE;integratedsecurity=true");
            Statement st = con.createStatement();
            String query="SELECT TOP(10)*FROM ERIT";
            ResultSet rs = st.executeQuery(query);
            while(rs.next());
    }
    catch(Exception e)
    {  
    }
    };

            public populategui(){
                super ("the title");
                setLayout(new FlowLayout());
                box=new JComboBox(filename);


            }

    }

如果您需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

你的一部分问题是你正在“挤压”可能告诉你问题的异常。将其更改为此(至少):

try {
    ...
} catch (Exception ex) {
    ex.printStackTrace();
}

这样你就可以看到抛出了什么异常......

更好的是,记录异常。


作为一般规则,抓住java.lang.Exception是一个坏主意,因为你最终可能会捕捉到你没有预料到的各种异常。这是一个可怕的想法捕获异常,只是继续,好像什么都没有出错。如果你扔掉关键证据,很难弄清楚为什么你的程序不起作用。


最后,您似乎正在尝试通过复制并粘贴您在互联网上找到的示例来编写Java代码。这是编写不可靠代码的方法。您需要正确地学习语言,Go购买并阅读有关Java编程的优秀教科书,或参加(免费)Oracle Java教程。

答案 1 :(得分:0)

我认为你的主要问题在于你的循环中没有操作:

ResultSet rs = st.executeQuery(query);
while(rs.next());

该代码是expanddet:

ResultSet rs = st.executeQuery(query);
while(rs.next()){
// nothing to to (n-times)
}