PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Fazer consulta no banco de dados através de um item JComboBox (JAVA) #587367

31/10/2017

0

Fala galera, tudo beleza ?!
Já se faz algum tempo que parei de programar, e resolvi voltar hoje e mudar algumas coisas em um sistema que eu tenho aqui..

Vamos lá..

Eu queria saber uma maneira de selecionar um item no JComboBox, e clicar no botão que eu tenho "pesquisar" e me trazer informações do banco..
O item que eu seleciono no JComboBox, já é do banco de dados.


Simplificando agora o que eu quero fazer:

***Quero fazer uma consulta, selecionando "data inicio", "data fim" e "algum nome" da lista do JComboBox.***

OBS: O sistema já faz a consulta apenas colocando a "data inicio" e "data fim", quero dar uma enxugada nas informações que o banco vai me trazer..


Sei que estou no caminho certo, porém da um erro que eu coloquei pra qndo não encontrar nenhum registro.


Aqui vai um pedaço do meu código pra ficar mais visível sobre o que eu estou pretendendo...


String consultaAgenda = "SELECT c.ID_CONSULTA, m.NOME_MEDICO, c.NOME_PACIENTE, c.TELEFONE, c.FICHA, c.DATA_CONSULTA, c.HORARIO, c.PRESENCA "
                         + "FROM CONSULTA c "
                         + "INNER JOIN MEDICO m ON m.ID_MEDICO = c.ID_MEDICOFK "
                         + "WHERE m.NOME_MEDICO LIKE ? AND c.DATA_CONSULTA BETWEEN ? AND ? "
                         + "ORDER BY c.HORARIO";


public List<ConsultaBean> listarAgenda(Date dataInicial, Date dataFinal, String nomemedico){
        
        try{
            AcessoMySql1 mysql = new AcessoMySql1();
            pstm = mysql.conectar().prepareStatement(consultaAgenda);//Conectando com o banco
            pstm.setDate(1, dataInicial); //SELECT * FROM Consulta WHERE data_consulta between dataInicial and dataFinal
            pstm.setDate(2, dataFinal);//SELECT * FROM Consulta WHERE data_consulta between dataInicial and dataFinal
            pstm.setString(3, nomemedico);
            rs = pstm.executeQuery();
            List<ConsultaBean> agenda = new ArrayList<ConsultaBean>();
            while (rs.next()){
                ConsultaBean ab = new ConsultaBean();
                ab.setCodigo(rs.getInt("id_consulta"));
                ab.setNome_medico(rs.getString("nome_medico"));
                ab.setNome_paciente(rs.getString("nome_paciente"));                
                ab.setTelefone(rs.getString("telefone"));
                ab.setFicha(rs.getInt("ficha"));
                ab.setDataConsulta(rs.getDate("data_consulta"));
                ab.setHorario(rs.getString("horario"));
                ab.setPresenca(rs.getString("presenca"));
                
                agenda.add(ab);
            }
            mysql.desconectar();
            return agenda;
        }catch(Exception e){
            e.printStackTrace();
        }       
        return null;
        
     }


private void pesquisarConsultas(){
        ConsultaControl cc = new ConsultaControl();
        
        
        if (jdcDataInicio.getDate() == null){
            JOptionPane.showMessageDialog(this, "Informe a data Inicial!");
            jdcDataInicio.requestFocus();
        } else if (jdcDataFim.getDate() == null){
            JOptionPane.showMessageDialog(this, "Informe a data Final!");
            jdcDataFim.requestFocus();
        }else if (cbMedicos2.getSelectedItem() == null){
            JOptionPane.showMessageDialog(this, "Informe um nome de um médico!");
            cbMedicos2.requestFocus(); 
        }else {
            while (tmConsultas.getRowCount() > 0){
                tmConsultas.removeRow(0);
            }
            
            SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
            DateFormat form = new SimpleDateFormat("dd/MM/yyyy");
            
           // String nomemedico = cbMedicos2.getSelectedItem().toString();
            
            java.util.Date dataInicio = (java.util.Date) jdcDataInicio.getDate();
            java.util.Date dataFim = (java.util.Date) jdcDataFim.getDate();
            agendas = cc.listarAgenda(Date.valueOf(formato.format(dataInicio)), Date.valueOf(formato.format(dataFim)), String.valueOf(cbMedicos2.getSelectedItem().toString()));
          
            String [] campos = new String[] {null, null, null, null, null, null, null, null};
            for (int i = 0; i < agendas.size(); i++){
                tmConsultas.addRow(campos);
                tmConsultas.setValueAt(agendas.get(i).getCodigo(), i, 0);
                tmConsultas.setValueAt(agendas.get(i).getNome_medico(), i, 1);
                tmConsultas.setValueAt(agendas.get(i).getNome_paciente(), i, 2);
                tmConsultas.setValueAt(agendas.get(i).getTelefone(), i, 3);
                tmConsultas.setValueAt(agendas.get(i).getFicha(), i, 4);
                tmConsultas.setValueAt(form.format(agendas.get(i).getDataConsulta()), i, 5);
                tmConsultas.setValueAt(agendas.get(i).getHorario(), i, 6);
                tmConsultas.setValueAt(agendas.get(i).getPresenca(), i, 7);
                
            }
            if (agendas.size() == 0){
                JOptionPane.showMessageDialog(this, "Nenhum registro encontrado!");
            }
        }
    }



O erro que dá, é esse por ultimo, "Nenhum registro encontrado"..

Se alguém puder me ajudar, fico muito agradecido. Agradeço de já.
Vinicius

Vinicius

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar