Erro de execução no ResultSet

Ai galera alguem pode me ajudar a resolver um problema nesse codigo?


import java.sql.*;
import java.io.*;
import javax.swing.JOptionPane;

public class teste1
{
        public static void main(String[] args) throws SQLException, IOException
        {
                System.out.println("Carregando o driver JDBC ODBC...");
                try
                {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                }
                catch(ClassNotFoundException e)
                {
                        JOptionPane.showMessageDialog(null,"Não consigo carregar o driver...");
                        e.printStackTrace();
                        return;
                }
                String x;
                System.out.println("Conectando-se ao banco de dados");
                x = JOptionPane.showInputDialog("Nome");
                Connection conn = DriverManager.getConnection("jdbc:odbc:Alexandre2");
                Statement stmt = conn.createStatement();
                String comando = "SELECT * FROM nomes WHERE Nome = '%x%'";
                ResultSet rs = stmt.executeQuery(comando);
                while(rs.next())
                {

                    JOptionPane.showMessageDialog(null,"Nomes\n" + rs.getString("Nome"),"Resultado",JOptionPane.PLAIN_MESSAGE);
                    System.out.println("Nomes: " + rs.getString("Nome"));

                }
                System.exit(0);
                stmt.close();
                conn.close();
        }
}

Até então o codigo funciona bem, so que nao me da o resultado da busca na tela. Se eu mudo a linha de instrucao de busca no SQL para essa:

String comando = "SELECT * FROM nomes WHERE Nome = ? " + x; 

da um baita erro nessa linha do codigo

ResultSet rs = stmt.executeQuery(comando);

O erro é esse:


java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access]Campo COUNT incorreto
     at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
     at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
     at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
     at sun.jdbc.odbc.JdbcOdbcStatement.execute JdbcOdbcStatement.java:338)
     at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
     at teste1.main(teste1.java:31)

Ai alguem pode me ajudar a resolver esse problema. Se forem testar o banco de dados tem uma tabela nomes e tem um campo Nome. 8)

Bom rapah, eu acho que sei o problema na sua consulta, deve ter sido descuido seu!

vc está usando isso:

String comando = "SELECT * FROM nomes WHERE Nome = '%x%'";

use isto ao invés:

String comando = "SELECT * FROM nomes WHERE Nome like '%"+x+"%'";

e a outra forma com a qual vc tentou eh aplicada para PreparedStatements!

espero ter ajudado, se nao for isso ai, poste ai denovo!!

cya!

Ai jujo, valeu pela dica. Funcionou do jeito que voce passou o codigo. Agora como fasso para inserir no banco de dados o nome de uma pessoa?? eu to usando essa linha de codigo para inserir:

String comando = "INSERT INTO nomes(Nome) VALUES '%"+x+"%'";

Tenho que usar esse ResultSet ou uma outra linha de comando?

ResultSet rs = stmt.executeQuery(comando);

ai Alex…

Consegui fazer!!! Deu certo 8)