pessoal alguém sabe o qué é esse erro?
java.sql.SQLException: Column not found
ja verifiquei todas as colunas do banco, e estão todas corretas. O banco que estou utilizando é o Acces.
pessoal alguém sabe o qué é esse erro?
java.sql.SQLException: Column not found
ja verifiquei todas as colunas do banco, e estão todas corretas. O banco que estou utilizando é o Acces.
De uma revisada no seu código novamente ou posta ele ai, porque esse erro dá quando não encontra a coluna…
flw!
pessoal alguém ai me ajude por favor… preciso mesmo … urgente…
ai meu codigo, ja revisei o banco várias vezes e as colunas estão iguais a que estou pegando…
package Internos;
import conectar.Conexao;
import java.sql.SQLException;
import java.util.List;
/**
*
@author vagner duarte
*/
public class AdicionarContatoControl {
Conexao conec;
public List listarContato (String busca){
List<AdicionarContatoBean> contato = null;
try {
String sql = "select nome from contato where nome like '" + busca + "'" ;
AdicionarContatoBean cont;
conec = new Conexao();
conec.Conectar();
conec.Consultas(sql);
while (conec.rs.next()) {
cont = new AdicionarContatoBean();
cont.setNome(conec.rs.getString("nome"));
cont.setEmpresa(conec.rs.getString("empresa"));
cont.setDd1(conec.rs.getString("dd1"));
cont.setDd2(conec.rs.getString("dd2"));
cont.setFone1(conec.rs.getString("telefone1"));
cont.setFone2(conec.rs.getString("telefone2"));
cont.setData(conec.rs.getString("data_de_cadastro"));
cont.setCodigo(conec.rs.getInt("codigo"));
contato.add(cont);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return contato;
}
}
Posta seu código!!!
vejam todo o erro:
java.sql.SQLException: Column not found
at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(JdbcOdbcResultSet.java:1850)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
at Internos.AdicionarContatoControl.listarContato(AdicionarContatoControl.java:32)
at Tela.Buscar.ListarContato(Buscar.java:250)
at Tela.Buscar.bt_pesquisarActionPerformed(Buscar.java:254)
at Tela.Buscar.access$000(Buscar.java:26)
at Tela.Buscar$1.actionPerformed(Buscar.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 14 segundos)
[quote=vagner.analista]ai meu codigo, ja revisei o banco várias vezes e as colunas estão iguais a que estou pegando…
package Internos;
import conectar.Conexao;
import java.sql.SQLException;
import java.util.List;
/**
*
* @author vagner duarte
*/
public class AdicionarContatoControl {
Conexao conec;
public List<AdicionarContatoBean> listarContato (String busca){
List<AdicionarContatoBean> contato = null;
try {
String sql = "select nome from contato where nome like '" + busca + "'" ;
AdicionarContatoBean cont;
conec = new Conexao();
conec.Conectar();
conec.Consultas(sql);
while (conec.rs.next()) {
cont = new AdicionarContatoBean();
cont.setNome(conec.rs.getString("nome"));
cont.setEmpresa(conec.rs.getString("empresa"));
cont.setDd1(conec.rs.getString("dd1"));
cont.setDd2(conec.rs.getString("dd2"));
cont.setFone1(conec.rs.getString("telefone1"));
cont.setFone2(conec.rs.getString("telefone2"));
cont.setData(conec.rs.getString("data_de_cadastro"));
cont.setCodigo(conec.rs.getInt("codigo"));
contato.add(cont);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return contato;
}
}
[/quote]
Se a variavel conec for um ResultSet válido, tá tudo certo com o seu código.
Pelo erro tem alguma coluna que o nome não está batendo, para descobrir qual é comenta o código testa com uma de cada vez.
Tenta rodar o sql q está na sua variavel sql direto no banco pra ver se não está com erro.
Espero ter ajudado!
Outra dica evite usar o comando like ele atrapalha muito o desempenho das suas consultas, se tiver muitas linhas na sua tabela ele vai ter que verificar linha por linha e String por string do campo para encontrar o q vc procura.
flw!
ok pessoal, agradeço a todos pela atenção vou fazer isso e tentar descobrir onde esta esse erro, valeu a todos…
Algum desses campos não existem na Tabela [color=red]Contato[/color]: nome,empresa,dd1,dd2,telefone1,telefone2,data_de_cadastro,codigo
Abraço.
cara valeu, mas infelizmente eu posso te afirmar isso, ja conferi isso umas 30 vezes, inclusive ja abri a tabela e fui copiando os nomes das colunas e colando para mim evitar o erro de digitação mas mesmo assim da o mesmo erro. Mas ainda não desistir to verificando tudo aqui…se alguém tiver idéia poste-me ai por favor, agradeço a todos…
Puts essa eu deixei passar, foi vacilo meu… kkkkk
O seu select está assim:
String sql = "select nome from contato where nome like '" + busca + "'" ; // <-- Essa query só retorna a coluna nome
E nessa parte do código você está tentando recuperar outros campos que não são retornados na query acima, por isso o erro column not found
cont.setNome(conec.rs.getString("nome"));
cont.setEmpresa(conec.rs.getString("empresa")); // <- inválido empresa não retorna
cont.setDd1(conec.rs.getString("dd1")); // <- inválido idem o de cima
cont.setDd2(conec.rs.getString("dd2")); / <- inválido idem o de cima
cont.setFone1(conec.rs.getString("telefone1")); // <- inválido idem o de cima
cont.setFone2(conec.rs.getString("telefone2")); // <- inválido idem o de cima
cont.setData(conec.rs.getString("data_de_cadastro")); // <- inválido idem o de cima
cont.setCodigo(conec.rs.getInt("codigo")); // <- inválido idem o de cima
Se você quiser que sejam retornados deve mudar sua query.
Mude para isso:
String sql = "select * from contato where nome like '" + busca + "'" ; // <-- Retorna todos os campos da tabela
flw!
Utilize o prepareStatement ficar melhor e não tem risco de sql inject ^^
PreparedStatement pstmt = null;
Connection con = null;
ResultSet rs = null
con = //Factory de conexão ...
String sql = "SELECT nome, empresa, dd1, dd2, telefone1, telefone2, data_de_cadastro, codigo FROM contato WHERE nome LIKE = ?"
pstmt = con.prepareStatement(sql);
pstmt.setString(1,busca);
rs = pstmt.executeQuery();
Abraço
Primeiramente eu gostaria de agradecer a todos aqueles que me ajudaram e colaboraram comigo, mas infelizmente sou desistir de terminar esse pequeno sistema, ja tenho o problema de ser iniciante, e a cada hora que eu consigo resolver um problema surge outro e nada nunca funciona. ja tem mais de mês que estou tentando fazer essa coisa que parece ser tão simples mas ao mesmo tempo tão complicado. Valeu a todos mais uma vez.
Cara o erro estava no seu select, veja na minha mensagem anterior…
Quando agente está iniciando é comum ter bastante erros e dúvidas.
abraços!
sim, sim eu vi inclusive consertei isso mas como eu disse, outro erro surgiu, quer dizer nenhum erro não sugiu mas quando vou mostrar os dados da a mensagem que nenhum registro foi encontrado, mas quando eu coloco o mesmo codigo no banco aparece todos os dados e ja não sei mais o que fazer… pior que não tem nem como colocar o codigo pois ele é muito grande…
Poste o nome e o tipo das colunas no banco.
vamos la:
nome = tipo texto
empresa = tipo texto
dd1 = tipo texto
dd2 = tipo texto
telefone1 = tipo texto
telefone2 = tipo texto
data = tipo texto
codigo = tipo numerico
OBS: banco de dados Acces.
só mais uma consideração breve, o problema agora não esta mais na consulta no banco, pois fiz como o gilmaslima falou e deu tudo certou ou seja, não esta dando mais erro nenhum, ai pego todo o meu resultset e jogo em um arraylist, mas quando vou mostrar os dados diz que não foi encontrado nehum registro. Mas o mesmo codigo sql no banco me retorna os registro sim.
Onde tu declarou
List<AdicionarContatoBean> contato = null;
Faça assim
List<AdicionarContatoBean> contato = new ArrayList<AdicionarContatoBean>;