Invocando
executeQuery(sql)
você realmente invoca um método em Statement
- não em PreparedStatement
. Então você joga fora o valor do parâmetro já atribuído e executa uma consulta onde o espaço reservado ?
permanece sem análise - então você recebe esse erro. Mudar
ResultSet results = state.executeQuery(sql);
para
ResultSet results = state.executeQuery();
e você deve estar bem.
(E de causa
resultname = state2.executeQuery(sql2);
precisa ser
resultname = state2.executeQuery();
também)