我是 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/