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)