2012-04-23 90 views
-1

我一直在尝试填充一个下拉列表,其中包含存在于我的数据库中的信息,但失败了。 我已经看过多个指南,并且已经有一些成功的代码,因为我是新手并且可能错过了一些步骤,所以我一直无法复制。 这是我目前正在:从数据库SQL填充JList

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); 


      } 

    } 

如果u需要更多信息,请让我知道。

+1

有没有真正足够在这里继续下去。它是否编译?它运行吗?是否有例外?如果是这样,什么是堆栈跟踪? – serg10 2012-04-23 11:06:30

+0

它应该编译位于数据库信息的下拉列表... 它运行在NetBeans和运行MS SQL ......,我不知道你的堆栈跟踪对不起 – NeedyHelpo 2012-04-23 11:07:35

+0

@NeedyHelpo的意思 - 不就是不他的意思是:看我的答案。 – 2012-04-23 11:16:22

回答

1

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

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

,这样就可以看到被抛出什么异常......

更妙的是,记录异常。


作为一般规则,这是一个坏主意赶上java.lang.Exception,因为你可能最终会赶上种种,你有没有预期的异常。这是一个可怕的想法,捕捉异常并继续,就像没有任何错误一样。如果抛弃重要证据,就很难弄清楚为什么程序不起作用。


最后,好像你被你发现在互联网上复制和粘贴的例子试图编写Java代码。这是编写不可靠代码的秘诀。您需要正确学习的语言,去购买并阅读Java编程的好教材,或者参加(免费)Oracle Java教程。

+0

了java.lang.RuntimeException:不可编译的源代码 - 错误的树类型: \t 在populategui。 (populategui.java:25) \t在apple.main(populatetable.java:5) – NeedyHelpo 2012-04-23 11:28:22

+0

@NeedyHelpo - 所以......你读错误信息?短语“不可编译的源代码”对你来说意味着什么?如果不是,您需要花时间做Oracle Java教程! – 2012-04-23 11:43:53

0

我想你的主问题IST为no-OP在你的循环:

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

该代码是expandet:

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