Olá, pessoal
Eu estou usando um banco de dados Access, a tabela chama-se Produtos, e só tem 4 campos (codigo, nome, quantidade, custo). Então eu coloquei no aplicativo 4 JTextFields (T1, T2, T3, T4) para mostrar valores desses 4 campos. Está funcionando certo, ou seja, abre o primeiro registro perfeito e vai para qualquer registro do banco.
Coloquei 4 JButtons pra NAVEGAR nos registros, assim:
b1 - Primeiro
b2 - Anterior
b3 - Próximo
b4 - Último
Está fazendo beleza, em qualquer botão que eu clico ele vai para o lugar certo. Está funcionando também.
Coloquei um outro JButton (b5) para LOCALIZAR um registro qualquer pelo nome do produto (campo nome). Ou seja, eu escrevo o nome de um produto na caixa T2 e clico no botão LOCALIZAR, ele faz perfeitamente, localiza qualquer produto, basta que eu escreva o nome certo na T2. Está funcionando também.
O que está errado então? É que ele só faz uma coisa ou outra, se eu rodo o aplicativo e fico usando os botões de navegação funciona, mas seu eu tento LOCALIZAR não localiza, não vai pra lugar nenhum.
Mas se eu rodo e fico LOCALIZANDO produtos digitando o nome, ele faz perfeitamente, mas se eu passo a clicar nos botões de navegação, não vai pra lugar nenhum.
Em resumo: ou ele NAVEGA nos 4 botões, ou LOCALIZA, mas não faz as duas coisas.
Vou colocar abaixo as partes do meu código que fazem essas coisas, claro, só as partes que devem conter o erro:
// VEJA A CONEXÃO COM O BANCO DE DADOS ----
String url = "jdbc:odbc:Loja";
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection Con = DriverManager.getConnection(url);
MeuState = Con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = MeuState.executeQuery("SELECT * FROM Produtos");
rs.first();
atualizaCampos();
}
// VEJA O MÉTODO atualizaCampos() -------------
public void atualizaCampos()
{
try
{
T1.setText(rs.getString("codigo"));
T2.setText(rs.getString("nome"));
T3.setText(rs.getString("quantidade"));
T4.setText(rs.getString("custo"));
}
catch(SQLException ex) { }
}
// VEJA AS AÇÕES DOS 4 BOTÕES DE NAVEGAÇÃO ------------
public void actionPerformed(ActionEvent e)
{
try
{
if (e.getSource()==b1)
rs.first();
if (e.getSource()==b2)
rs.previous();
if (e.getSource()==b3)
rs.next();
if (e.getSource()==b4)
rs.last();
atualizaCampos();
}
// VEJA A AÇÃO DO BOTÃO LOCALIZAR ---------------
if (e.getSource()==b5)
{
try
{
String SQL = "SELECT * FROM Produtos WHERE nome = '"+T2.getText()+"'";
rs = MeuState.executeQuery(SQL);
rs.next();
T1.setText(rs.getString("codigo"));
T2.setText(rs.getString("nome"));
T3.setText(rs.getString("quantidade"));
T4.setText(rs.getString("custo"));
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,"Produto não encontrado!");
return;
}
}
É certo que eu coloquei alguma coisa de mais ou de menos nesse código, eu não consigo ver, mas se alguém consegue, dá uma ajuda aí.
Abraço a todos.
Marco