Problemas com a lógica do sistema uRGENTE PESSUAL PRECISO ENTREGAR HOJE ISSO!

7 respostas
T
Ola pessual to com um problema em minha aplicação, é o seguinte tenho que cadastrar livros, porem é necessario que o usuario informe o codigo do livro que pode ser o isbn, issn, cod Multimidia, e numAtivo, porem se ele não informar eve aparecer uma mensagem para ele informar o código e não deve gravar no banco enquanto nao informar e retornar para o campo do combo, fiz uma lógica, ele mostra a mensagem mas mostra gravação concluida, poderiam me dar uma luz por favor:
private void buton_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    
    	do{
        try
        {
           String sqlinsert = "INSERT INTO Cadastro (Tipo,ISBN,ISSN,cod_Multimidia,num_Ativo,Titulo,Autor,Edicao,Assunto,Publicacao,Editora,Quantidade,Acervo_Restrito) values ('"+     
        combo_Tipo.getSelectedItem()+"', '"+     
        text_ISBN.getText()+"','"+     
        text_ISSN.getText()+"','"+     
        text_codMultimidia.getText()+"','"+     
        text_numAtivo.getText()+"','"+     
        text_Titulo.getText()+"','"+     
        text_Autor.getText()+"','"+     
        text_edicao.getText()+"','"+     
        Jcombo_Assunto.getSelectedItem()+"','"+     
        text_publicacao.getText()+"','"+     
        text_editora.getText()+"','"+     
        text_quantidade.getText()+"','"+     
        rbuton_sim.getText()+"')";    
        	   combo_Tipo.requestFocus();
        if(text_ISBN.equals("")||text_ISSN.equals("")||text_numAtivo.equals("")||text_codMultimidia.equals(""))
        {
        	 JOptionPane.showMessageDialog(null,"Insira o código referente ao tipo de acervo"); 
        	 combo_Tipo.requestFocus();
        }else 
            cad_acervo.statement.executeUpdate(sqlinsert);
            JOptionPane.showMessageDialog(null,"Gravação realizada com Sucesso");
            cad_acervo.executeSQL("select * from Cadastro");
            cad_acervo.resultset.first();
             mostrar_dados();       
            
        }
            catch(SQLException erro)
            {
                
                JOptionPane.showMessageDialog(null,"Problemas com:  "+erro);
            }
    	}while(text_ISBN.equals(null)||text_ISSN.equals(null)||text_numAtivo.equals(null)||text_codMultimidia.equals(null));    
            
    }

7 Respostas

renamed
else   { //faltou essa chave...
           cad_acervo.statement.executeUpdate(sqlinsert);  
           JOptionPane.showMessageDialog(null,"Gravação realizada com Sucesso");  
           cad_acervo.executeSQL("select * from Cadastro");  
           cad_acervo.resultset.first();  
            mostrar_dados();         
             
       }

ok?

T

Não ele continua realizando a gravação normalmente, não esta fazendo a condicional nem o looping.

dlrodrigues

Amigo tenta com esse codigo. ajustei algumas chaves que estavam faltando. Alem daquele que o amigo mostrou, faltava outro.

private void buton_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                               
     
    do {   
       try {   
          String sqlinsert = "INSERT INTO Cadastro (Tipo,ISBN,ISSN,cod_Multimidia,num_Ativo,Titulo,Autor,Edicao,Assunto,Publicacao,Editora,Quantidade,Acervo_Restrito) values ('"+       
          combo_Tipo.getSelectedItem()+"', '"+       
          text_ISBN.getText()+"','"+       
          text_ISSN.getText()+"','"+       
          text_codMultimidia.getText()+"','"+       
          text_numAtivo.getText()+"','"+       
          text_Titulo.getText()+"','"+       
          text_Autor.getText()+"','"+       
          text_edicao.getText()+"','"+       
          Jcombo_Assunto.getSelectedItem()+"','"+       
          text_publicacao.getText()+"','"+       
          text_editora.getText()+"','"+       
          text_quantidade.getText()+"','"+       
          rbuton_sim.getText()+"')";       
           combo_Tipo.requestFocus();   
          if(text_ISBN.equals("")||text_ISSN.equals("")||text_numAtivo.equals("")||text_codMultimidia.equals("")) {   
             JOptionPane.showMessageDialog(null,"Insira o código referente ao tipo de acervo");   
             combo_Tipo.requestFocus();   
          } else {
             cad_acervo.statement.executeUpdate(sqlinsert);   
             JOptionPane.showMessageDialog(null,"Gravação realizada com Sucesso");   
             cad_acervo.executeSQL("select * from Cadastro");   
             cad_acervo.resultset.first();   
             mostrar_dados();         
          }   
       } catch(SQLException erro) {   
          JOptionPane.showMessageDialog(null,"Problemas com:  "+erro);   
       }   
    } while(text_ISBN.equals(null)||text_ISSN.equals(null)||text_numAtivo.equals(null)||text_codMultimidia.equals(null));       
             
 }
T

Ele continua salvando normalmente, bom deixa ver se consigo explicar, queria que o usuario escolhesse o tipo de acervo no combo box e com isso ele habiita um campo para ser digitado porém quero que ele salve o registro somente se o usuario digitar o codigo no campo habilitado senão ~ele mostra a mensagem e foca no combo novamente para que o usuario digite, não quero que salve antes disso, quero que fique em looping ate ele digitar.

T

aGORA CONSEGUI QUE ELE IMPRIMISSE A MENSAGEM POREM ELE SALVA DO MESMO JEITO, JA COLOQUEI A CONDICIONAL DE TODOS OS JEITOS O QUE PODE ESTAR OCORRENDO???

duardor

Cara é simples
Eu não vou te dar a resposta mas vou te apontar o erro, olhando vc vai rir de si mesmo.

text_ISBN.equals("")

Isso sempre é false.

L

Cara realmente é muito simples… Acho que você está comparando o tipo de objeto errado.
Tenho certeza que você consegue resolver isso facinho

Vlw!

Criado 5 de novembro de 2009
Ultima resposta 5 de nov. de 2009
Respostas 7
Participantes 5