O que estou fazendo de errado? Estou tentando pegar as informações da tabela estado e jogar em um combo na tabela cidade, para serem selecionados os
estados que ja estao cadastrados..
este é meu metodo para incluir uma cidade no banco:
public static void incluirCidade(Cidade c) throws ErroException {
ConexaoMySQL con = new ConexaoMySQL();
String sql = "INSERT INTO CIDADE (CODESTADO, NOME) VALUES (?,?)";
con.prepararPst(sql);
con.setParam(1, c.getCodEstado().getCodEstado()); //O primeiro codEstado é da tabela cidade, o segundo é da tabela estado
con.setParam(2, c.getNome());
con.executarPst(con.ACAO_FECHAR);
}
no meu form de cidade, criei 1 metodo para atualizar o combo quando um dado for inserido:
public void atualizarComboEstado() {
cbEstado.removeAllItems();
try {
listarComboEstado = EstadoDAO.listarComboEstado();
} catch (ErroException ex) {
}
cbEstado.setModel(new DefaultComboBoxModel(listarComboEstado));
}
[code]
no EstadoDAO criei outro metodo para listar os dados do estado no combo:
[code]
public static Vector listarComboEstado() throws ErroException {
ConexaoMySQL con = new ConexaoMySQL();
String sql = "SELECT NOME FROM ESTADO ORDER BY NOME ASC";
con.prepararPst(sql);
Vector dados = con.selecionar();
Vector resposta = new Vector();
for (int i = 0; i < dados.size(); i++) {
Vector lin = (Vector) dados.get(i);
String linha = "";
linha = (String.valueOf(lin.get(0)) + " - " + String.valueOf(lin.get(1)));
resposta.add(linha);
}
return resposta;
}
Este é meu outro metodo no form da cidade para inserir os dados usando o metodo incluirCidade criado no CidadeDAO:
@Override
public void gravarDados() {
try {
Cidade cid = new Cidade();
cid.setNome(fieldNome.getText());
String estadoOriginal = (String) cbEstado.getSelectedItem();
int separador = estadoOriginal.indexOf(" - ");
cid.setCodEstado(EstadoDAO.listarComboEstado(estadoOriginal.substring(0, separador),
estadoOriginal.substring(separador + 3)));
if (novoRegistro) {
CidadeDAO.incluirCidade(cid);
} else {
cid.setCodCidade(fieldCodigo.getText());
CidadeDAO.alterarCidade(cid);
}
} catch (Exception ex) {
d.showMessageDialog(null, ex.getMessage(), "Erro de gravação", 0);
}
super.gravarDados();
}
o combo nao trás os estados gravados no banco, alguem sabe pq? ;x