当我使用此代码在数据库 microsoft access 中查询时..
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 的原因。
有人知道我哪里出了问题吗?
最佳答案
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() + "*\'");
关于java - 在 select 语句的 where 子句中使用 LIKE 和 OR 结果为 ' Too few parameters. Expected 1.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600460/