无法从Statement.executeQuery()

时间:2016-10-08 18:56:24

标签: java swing jdbc jdbc-odbc

我是Java Swing编程的新手,所以请耐心等待。 我使用JDBC ODBC驱动程序将JFrame连接到MA Access数据库,这是错误的代码。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:MS Access Database");
        st = con.createStatement();
        String q = "select "+Name+",Date/Subject from "+$Class;
        R = st.executeQuery(q);

        int row=0;
        while(R.next())
        {
            Table.setValueAt(R.getString("Date/Sujbect"),row,0);
            Table.setValueAt(R.getString(Name),row,1);
            row++;
       }

当达到st.executeQuery(q)时,它会抛出异常说。

"Too few Parameters. Expected 2". 

我不明白的是:当查询写成

"select * from "+ $Class;

它完美无缺。即使在其他JFrame中,我也在做同样的事情。这个异常作为日志持续存在,因为我提到的是精确的列而不是星号(*)。

如果有任何解决方法或我可能使用的任何其他方法,请告知我们。

1 个答案:

答案 0 :(得分:2)

  

如果有任何解决方法,请告知我们

问题是你的SQL语句。你某处有错误。

listItemStatus

如果您的SQL出现问题,请不要使用变量。首先通过硬编码列名来使SQL工作。类似的东西:

String q = "select "+Name+",Date/Subject from "+$Class;

然后,一旦你开始工作,你可以尝试使语句动态化,并使用变量来指定列名或表名。

如果您需要更多帮助,请查找SQL教程并查找正确的语法。这是一个让你入门的人:JDBC Database Access

我们不知道您的表名或列名,因此我们无法为您编写代码。那是你的工作。