URGENTE ! Por favor

5 respostas
T

como gravar no banco valor inteiro sendo que populo meu Jcombo box com valor String

Bom pessual estava com muita duvida para popular meu combo box pegando os registros do meu banco, pois bem consegui fazer isso, e achei ate simples, percorrendo todo o banco e trazendo o resultado no Jcombo, ai beleza consigo setar os valores, mas na hora de gravar eles que esta o problema.

no meu banco tenho os seguintes campos:

//esta é a tabela que populo meu combo box

create table assunto(

cod_assunto                int identity(1,1) not null,
descricao_assunto        varchar(100)not null


constraint pk_cod_assunto primary key (cod_assunto),
constraint uq_assunto  unique(descricao_assunto)
)

ai no caso referencio a chave primarisa desta tabela na seguinte tabela

create table Acervo(

tombo           int identity(1,1)  not null,
Titulo            varchar(100),
cod_assunto  int not null

constraint pk_tombo          primary key (tombo),
constraint uq_titulo            unique (titulo),
constraint fk_cod_assunto  foreign key (cod_assunto)
                                                         references Assunto(cod_assunto)
)

e na hora de gravar no banco não consigo pois como disse populo meu combo com string e preciso gravar no banco com int somente o codigo do assunto

Se alguem puder me ajudar agradeço muito, não coloquei meu codigo java aqui pois estou no serviço e aqui não tem como eu abrir, mas espero que tenham entendido, qualquer duvida tento ser mais claro

5 Respostas

S

Na hora que vc precisar utilizar o valor da sua combo pra gravar no bd, não dá pra converter de String pra int ?

ViniGodoy

Você precisa guardar um objeto na sua combo, não só o String com a descrição. Já posto um link com um exemplo…

ViniGodoy

Aqui vai um link com o passo-a-passo do que fazer:
http://www.guj.com.br/posts/list/208543.java#1059654

Mas no lugar de “Cidade” a sua classe será para um “Assunto”.

T

ViniGodoy:
Aqui vai um link com o passo-a-passo do que fazer:
http://www.guj.com.br/posts/list/208543.java#1059654

Mas no lugar de “Cidade” a sua classe será para um “Assunto”.

putz Vini que show em, valew cara, vou testar quando chegar na facul caso de algum erro posto aqui novamente

T

Então entendi o que estava fazendo naquele seu exemplo agora na hora de implementar no que eu fiz estou sem ideia de como fazer, sera que alguem pode dar uma luz

eu chamo este método que criei na inicialização dos componentes

popularComboAssunto();
[
public void popularComboAssunto(){

    cad_acervo.executeSQL("select Descricao_Assunto from Assunto");
        try {
                Jcombo_A

ssunto.removeAllItems();
                Jcombo_Assunto.addItem("ESCOLHA UMA OPÇÃO");
            while (cad_acervo.resultset.next()) {
                Jcombo_Assunto.addItem(cad_acervo.resultset.getString("Descricao_Assunto"));
            }
        } catch (SQLException ex) {
            Logger.getLogger(Cad_Acervo.class.getName()).log(Level.SEVERE, null, ex);
        }
   }

ai o Vini deu a ideia de fazer da seguinte form para poder gravar o valor inteiro no banco a partir da string que eu seto no combo

public class Cidade {   
   public int id;   
   public String nome;   
  
   public Cidade(int id, string nome) {   
      this.id = id;   
      this.nome = nome;   
   }   
  
   public int getId() { return id; }   
   public String getNome() { return nome; }   
  
   @Override   
   public String toString() { return getNome(); }   
}

ai ele disse para fazer o seguinte

Como dentro do combo só tem objetos do tipo Cidade, o método getSelectedValue() também retornará uma Cidade. Aí é só fazer:

Cidade cidade = (Cidade) seuCombo.getSelectedValue();   
gravarNoBanco(cidade.getId());

mas como implemento isso usando o meu método?? nem sei se da para reaproveitar o método que fiz para popular o combo?

Criado 7 de junho de 2010
Ultima resposta 7 de jun. de 2010
Respostas 5
Participantes 3