No meu sisteminha montei uma tela de cadastro de cidade, depois de cadastradas as cidades coloquei um combobox no cadastro de pessoa, para que o cliente
escolha em uma das cidades cadastradas, o combobox lista certinho as cidades, mas na hora de gravar no banco, eu preciso de um metodo que selecione o ID
desda cidade que o cliente esta selecionando no combobox, nao estou conseguindo fazer este metodo :S
fiz ele assim :
public static int selecionaID(String cidade) throws ErroException {
ConexaoMySQL con = new ConexaoMySQL();
String sql = "SELECT CODCIDADE FROM CIDADE";
con.prepararPst(sql);
Cidade c = new Cidade();
int id = (int) c.getCodCidade();
return id;
}
mas nao ta dando certo e acho que ta errado iuahiuahuia, alguem sabe como fazer?
quando setar as cidades no combo coloca o object la e manda mostrar o nome dentro do combo da por exemplo cidade.getNome(); pra exibir o nome pro usuario mas dentro do combo vai ter o objeto cidade la e la ja vai ter o id tudo…
nao intendi cara ;x
vc poderia dar um exemplo?
como voce ta inserindo dados no comboBox?
Com esses dois metodos,
esse atualiza o combo:
public void atualizarComboCidade() {
cbCidade.removeAllItems();
Vector listarCombo = null;
try {
listarCombo = PessoaDAO.listarComboCidade();
} catch (ErroException ex) {
}
cbCidade.setModel(new DefaultComboBoxModel(listarCombo));
}
e esse lista os dados no combo:
[code]
public static Vector listarComboCidade() throws ErroException {
ConexaoMySQL con = new ConexaoMySQL();
String sql = “SELECT NOME FROM CIDADE 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)));
resposta.add(linha);
}
return resposta;
}[/code]
usa vectornao cara usa ArrayList do tipo Cidade que acho que vai da certo. dai vc retorna um array
mais qual a diferença? ;x
nao da na mesma?
não pois o array c vai especificar o tipo de objeto que ele vai possuir no caso cidade entao outro tipo de objeto nao vai poder ser instanciado
vlw pela dica cara, mais por enquanto vou deixar assim mesmo, to com pouco tempo pra terminar esse sistema e a combobox ta funcionando
aiwuheiahuehawu, o problema mesmo é criar um metodo para achar o id que o combo ta passando e gravar o objeto de pessoa no banco, criei outro metodo
que parece estar certo agora…
public static String selecionaID(String codCidade) throws Exception {
try {
ConexaoMySQL c = new ConexaoMySQL();
String sql = "SELECT CODESTADO FROM CIDADE WHERE CODCIDADE = ?";
PreparedStatement ps = c.getCon().prepareStatement(sql);
ps.setInt(1, Integer.parseInt(codCidade));
ResultSet rs = ps.executeQuery();
if (rs.next()) return String.valueOf(rs.getInt("CODESTADO"));
return "0";
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
mas na hora de gravar ele da o seguinte erro no combo para selecionar a cidade: for input string: “NomeCidade”
por que isso?
na minha classe DAO da cidade ja criei um set para converter o codigo para string, e msm assim ele da isso ;(
alguem sabe pq?
meu metodo de set:
public void setCodCidade(String codCidade) throws ErroException {
try {
setCodCidade(Integer.parseInt(codCidade));
} catch (NumberFormatException nf) {
}
}
public void setCodCidade(String codCidade) throws ErroException {
try {
setCodCidade(Integer.parseInt(codCidade));
} catch (NumberFormatException nf) {
}
}
num seria assim?
public void setCodCidade(String codCidade) throws ErroException {
try {
this.codCidade = Integer.parseInt(codCidade);
} catch (NumberFormatException nf) {
}
}
coloquei o this e o erro continua o mesmo ;(
qual IDE você usa? na sua classe cidade que é onde tem os metodos get and set me mostra ela/
uso o netbeans
ta aqui o bean da cidade:
package sgia.Bean;
import sgia.erros.ErroException;
public class Cidade {
private int codCidade;
private Estado codEstado;
private String nome;
public long getCodCidade() {
return codCidade;
}
public void setCodCidade(int codCidade) {
this.codCidade = codCidade;
}
public void setCodCidade(String codCidade) throws ErroException {
try {
this.setCodCidade(Integer.parseInt(codCidade));
} catch (NumberFormatException nf) {
}
}
public Estado getCodEstado() {
return codEstado;
}
public void setCodEstado(Estado codEstado) {
this.codEstado = codEstado;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}