1

When I query in my database microsoft access, with this code..

dc.rs = dc.st.executeQuery("select count(*) from Accounts where username like '%"+searchTF.getText()+"%' OR firstname like '%"+searchTF.getText()+"%'");

I got this result, not sure if this is error because it is written in black text.

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

I want to search by username or by firstname that's why i put an OR there.

Do anyone know where I got some problem?

4

1 回答 1

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() + "*\'");
于 2012-11-28T08:20:19.457 回答