Bom pessoal estou fazendo um combobox onde quero armazenar o codigo ibge do estado e não o nome, na tabela municipio
Stringsqlbuscauf=("select * from estados where nome like'"+cbEstados.getSelectedItem().toString()+"'");con_estados.executarSQL("sqlbuscauf");JOptionPane.showMessageDialog(null,cbEstados.getSelectedItem());Stringsqlinsert="insert into municipios (nome, cod_ibge, cod_estado) values ('"+tfNome.getText()+"', '"+tfCodigoIBGE.getText()+"', '1')";con_municipios.statement.executeUpdate(sqlinsert);
lembrando que o JOptionPane é apenas para ver se está vindo o nome do estado corretamente, então agora preciso colocar no lugar daquele ‘1’ que está na segunda operação sql, como faço para pegar o valor cod_ibge da tabela estados e colocar no lugar desse ‘1’.
Bom vamos lá, deixa eu ver se entendi, o código do IBGE você pega a partir do
String sqlbuscauf = ("select * from estados where nome like'"+cbEstados.getSelectedItem().toString()+"'");
con_estados.executarSQL("sqlbuscauf"); é isso?
Mas e aê você busca mas não faz mais nada com essa informação?
Nessa parteString sqlinsert = "insert into municipios (nome, cod_ibge, cod_estado) values ('"+tfNome.getText()+"', '"+tfCodigoIBGE.getText()+"', '1')";
Os textField são carregados pelo BD ou pelo o que o usuário digitou. Se possível poste a mais partes do código para ficar mais simples de te ajudar.
EDIT: Lembrando que o que o Alberes postou nessa parte Estado estado = con_estados.executarSQL("sqlbuscauf");
Ele considerou que você tivesse a classe estado criada para poder manipular mais facilmente os dados.
moacirrox
carrega a partir da db, ele lista todos os estados cadastrados na database.
con_estados.executarSQL("select * from estados order by nome");while(con_estados.resultset.next()){cbEstados.addItem(con_estados.resultset.getString("nome"));}
ai nessa query eu busco o resultado que o cara deixou selecionado no combobox, para pegar o codigo_ibge
Stringsqlbuscauf=("select * from estados where nome like'"+cbEstados.getSelectedItem().toString()+"'");con_estados.executarSQL("sqlbuscauf");
ai preciso inserir na query de municipios na hora do cadastro, sendo que o municipio é vinculado ao codigo_ibge do estado que ele deixou selecionado.
D
danilovicente
Então quando você faz a busca de estado você pode pegar no resultset dela a coluna com o código do IBGE e adicionar em uma variável e usar essa variável depois.
moacirrox
humm… mais como faria isso? pensei nisso mesmo, pois no php resolveria isso com apenas 1 query, ja no java vo fazendo minhas gambiarras xD
D
danilovicente
String sqlbuscauf = ("select * from estados where nome like'"+cbEstados.getSelectedItem().toString()+"'");
con_estados.executarSQL("sqlbuscauf");
Nessa parte você pega o todas as informações do estado não pega?
quando faz o resultSet pegar a coluna cod_ibge
String cod = con_estados.resultSet(“cod_ibge”);
Isso é um exemplo por cima. Depende muito da estrutura do seu código.
moacirrox
nossa mãe ficou meio que um bonde das loucas essa gambiarra que fizemos kakakaka, mais deu certo xD!
try{Stringsql="select * from estados Where nome like '"+cbEstados.getSelectedItem()+"'";con_estados.executarSQL(sql);con_estados.resultset.first();Stringcod=con_estados.resultset.getString("cod_ibge");Stringsqlinsert="insert into municipios (nome, cod_ibge, cod_estado) values ('"+tfNome.getText()+"', '"+tfCodigoIBGE.getText()+"', '"+cod+"')";con_municipios.statement.executeUpdate(sqlinsert);JOptionPane.showMessageDialog(null,"Município efetuado com sucesso");cancelar_cadastro();preencher_posacao();}catch(SQLExceptionerro){JOptionPane.showMessageDialog(null,"Problemas ao cadastrar município");cancelar_cadastro();}
Obrigado Danilo.
D
danilovicente
de nada Moacir, não é gambiarra nenhuma não, você poderia fazer de diversas maneiras, por exemplo armazenar em um ArrayList, dei uma solução por cima apenas para resolver agora que está com mais urgência. Têm várias maneiras, inclusive usando hashMap. Tudo depende do seu programa