java - 无法从 Statement.executeQuery() 获取选定的列

标签 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 中,我也在做同样的事情。当我提到确切的列而不是星号 (*) 时,此异常仍然作为日志存在。

如果有任何解决方法,或者我可以使用的任何其他方法,也请告诉我。

最佳答案

Please also let me know if there is any workaround this

问题出在你的SQL语句上。您在某个地方出错了。

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

如果您的 SQL 出现问题,请不要使用变量。首先通过对列名进行硬编码来让 SQL 工作。像这样的东西:

String q = "Select Column1, Column2 from TableName";

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

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

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

关于java - 无法从 Statement.executeQuery() 获取选定的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39936163/

相关文章:

java.sql.Date错误如何避免?将日期插入我的数据库

java - 我收到以下代码的 SQL 语法错误和许多异常

java - 如何准确地将Float解析为String?

java - 如何在Label点击上动态添加和删除JTextField

java - 文本文件io和换行符

java - JFileChooser 打开多个txt文件

java - 如何将 'JOptionPane.showConfirmDialog' 弹出窗口的默认焦点从 'Ok' 按钮更改为 'textfield' ?

mysql - 在 JSP 上显示自动生成的主键

java - 如何使用 DateTimeFormatter 从 MONTH ("MMMM") 或 YEAR ("yyyy") 获取 Date 对象

java - 如何通过最新版本的 java webstart 将系统属性传递给 Java?