2014-02-24 140 views
0

我想用数据库列(SQLite)填充JComboBox。Java - 用SQLite数据库填充JCombobox

我的数据库连接是通过一个名为DatabaseConnection的类在安装包中设置的。

这里是如何看起来像

import java.sql.*; 

import javax.swing.JOptionPane; 

public class DatabaseConnection { 
Connection conn = null; 

public static Connection ConnectDB() { 

    try { 
     Class.forName("org.sqlite.JDBC"); 
     Connection conn = DriverManager.getConnection("jdbc:sqlite:database.db"); 
     JOptionPane.showMessageDialog(null, "Connection Established"); 
     conn.setAutoCommit(false); 
     return conn; 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
     return null; 
    } 
} 
} 

在我的JFrame类我创建了下面的方法,它根据一个YouTube教程应该工作

public void PopulateJCB() 
{ 
    String queryString = "SELECT DISTINCT [Account Name] FROM main ORDER BY [Account Name]"; 
    try 
    { 
     Connection statJCBaccountname = DatabaseConnection.ConnectDB(); 
     Statement stmt = statJCBaccountname.createStatement(); 
     ResultSet rsJCBaccountname = stmt.executeQuery(queryString); 

     while (rsJCBaccountname.next()) 
     { 
      comboAccountName.addItem(rsJCBaccountname.getString(1)); 
     } 

    catch (SQLException e) 
    { 
     e.printStackTrace(); 
    } 

} 

但它显示下面的“comboAccountName错误.addItem(rsJCBaccountname.getString(1));”

Multiple markers at this line 
- Type safety: The method addItem(Object) belongs to the raw type JComboBox. References to generic type JComboBox<E> should be 
parameterized 
- comboAccountName cannot be resolved 

请帮忙!

+0

无关:请学习Java命名约定并严格遵守。 – kleopatra

回答

1

我真的不知道你期待什么?

  • statJCBaccountname甚至不是在您所提供的代码示例,但是编译器是说,变量未定义
  • 没有为createStatementDatabaseConnection

您需要解决这些问题,该程序将编译之前没有这样的方法。除非你了解作者,否则我建议不要使用YouTube教程。

看看JDBC Database Access了解更多详情...

+0

对不起,做了一个更正。 statJCBaccountname是我的声明的名称。 – satnam

+0

'statJCBaccountname'但是它是什么类型?它没有定义,它从未被宣布过? – MadProgrammer

+0

http://www.youtube.com/watch?v=wpbQ0DCFF0M - 这个视频就是我看到的地方。他只写stat我写statJCBaccountname – satnam