Bom dia pessoal, sou novo no grupo e em desenvolvimento java gostaria da ajude vocês. Estou fazendo um mostra dados e consegui fazer com que o estado aparaça normalmente mas a cidade está me dando um pouco de trabalho pois ela não retorna forma alguma. Segue abaixo o código.
try{
int numCidade = Integer.parseInt(conect.resultSet.getString("numCidade"));
c.executeSQL("SELECT nmCidade FROM tbl_cidades where idCidade="+numCidade);
c.resultSet.first();
cbxCidade.setSelectedItem(c.resultSet.getString("nmCidade").toUpperCase());
int numEstado = Integer.parseInt(conect.resultSet.getString("sgEstado"));
c.executeSQL("SELECT sgEstado FROM tbl_estados where idEstado="+numEstado);
c.resultSet.first();
cbxEstado.setSelectedItem(c.resultSet.getString("sgEstado").toUpperCase());
}catch(SQLException e){
JOptionPane.showMessageDialog(null, "Informações não encontradas:"+e);
}
}
Já tentei também, mas numCidade está relacionado no banco na tabela de cadastro do cliente, e , nmCidade está relacionado na tabela cidade. Tenho duas tabelas de estado e eidade separadas e na tabela cliente apenas salva as id´s das tabelas cidade e estado.
A ideia é pegar a idCidade da cidade na tabela cidade e apontar o nome da cidade nmCidade e gravar a idCidade na tabela cliente em numCidade, quando buscar o cliente o parseInt faz a conversão da id e retorna o nome da cidade cadastrada.
Fora isso, umas observaçoes gerais sobre seu código:
Nao é preciso prefixar suas tabelas com tbl_, geralmente é bem óbvio que sao tabelas.
Evite abreviaturas em nomes em geral: num, nm, c. Prefira a forma completa e clara.
Falando nisso, se uma coluna é da tabela cidades, nao precisa repetir nomeCidade (ou siglaEstado na tabela estados)
Resultsets tem um método getInt. Você pode usar diretamente ao invés de parseInt(getString)
Outra coisa sobre resultsets, geralmente é uma má idéia que eles sejam atributos de uma classe (como em c.resultset ou conect.resultSet). Dá menos dor de cabeça manterem eles como variáveis locais que sao propriamente descartadas assim que usadas. seu método c.executeSQL por exemplo, poderia retornar um novo resultSet ao invés de preencher um atributo da classe com ele.
Aliás, porque você criou um método executeSQL se a classe Connection já tem um método que faz exatamente isso?
Cara, faça o System.out.println como o amigo de cima está falando e poste o que saiu.
Você não entendeu a minha última pergunta.
Além do getString() existe também o getInt().
Se o campo é inteiro, você não precisa usar o getString() e depois fazer o parseInt, pode chamar direto o getInt, que te retorna um inteiro.