当我在我的数据库中查询microsoft访问时,使用此代码..
dc.rs = dc.st.executeQuery("select count(*) from Accounts where username like '%"+searchTF.getText()+"%' OR firstname like '%"+searchTF.getText()+"%'");
我得到了这个结果,不确定这是否是错误,因为它是用黑色文字写的。
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
我想通过用户名或名字搜索,这就是我在那里放置OR的原因。
有谁知道我在哪里遇到问题?
答案 0 :(得分:2)
Microsoft Access使用*作为通配符
MS Access也根据此页面使用单引号
http://refactoringself.com/2011/06/22/ms-access-error-too-few-parameters-expected-x/
使用准备好的声明
String queryString = "select count(*) from Accounts where username like ? OR firstname like ?";
PreparedStatement stmt= con.prepareStatement(queryString );
stmt.setString(1, "*" + searchTF.getText() + "*");
stmt.setString(2, "*" + searchTF.getText() + "*");
stmt.executeQuery();
或不太安全的方式
dc.rs = dc.st.executeQuery("select count(*) from Accounts where username like " +
"\'*" + searchTF.getText() + "\'* OR firstname like \'*" + searchTF.getText() + "*\'");