Java - Listar registros de tabla sql entre dos fechas

 
Vista:
Imágen de perfil de Alejandro
Val: 38
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Listar registros de tabla sql entre dos fechas

Publicado por Alejandro (21 intervenciones) el 10/10/2019 23:37:14
Este el el codigo, pero no funciona. La verdad no tengo mucha idea de como hacer un listados donde pueda seleccionar dos fechas con un jdatechooser y que me liste las ventas realizadas entre esas dos fechas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private void btnfiltroActionPerformed(java.awt.event.ActionEvent evt) {
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    DefaultTableModel modelo = (DefaultTableModel) tablaventas.getModel();
    String dia1 = Integer.toString(fechadesde.getCalendar().get(Calendar.DAY_OF_MONTH));
    String mes1 = Integer.toString(fechadesde.getCalendar().get(Calendar.MONTH));
    String year1 = Integer.toString(fechadesde.getCalendar().get(Calendar.YEAR));
    String fechadesde = (dia1 + "/" + mes1 + "/" + year1);
    String dia2 = Integer.toString(fechahasta.getCalendar().get(Calendar.DAY_OF_MONTH));
    String mes2 = Integer.toString(fechahasta.getCalendar().get(Calendar.MONTH));
    String year2 = Integer.toString(fechahasta.getCalendar().get(Calendar.YEAR));
    String fechahasta = (dia2 + "/" + mes2 + "/" + year2);
    PreparedStatement pst = null;
    ResultSet rs = null;
    try{
        Date date2 = sdf.parse(fechadesde);
        Date date3 = sdf.parse(fechahasta);
        String sql = "SELECT ncomp, nombre, domicilio, dnicuit, fecha FROM ventas_clientes";
        pst =connect().prepareStatement(sql);
        rs = pst.executeQuery();
        while(rs.next()){
            String fecha = rs.getString("fecha");
            Date date1 = sdf.parse(fecha);
            if(date1.before(date2)){
            }else{
                if(date1.after(date2)){
                }else{
                    Vector v = new Vector();
                    v.add(rs.getString(1));
                    v.add(rs.getString(2));
                    v.add(rs.getString(3));
                    v.add(rs.getString(4));
                    v.add(rs.getString(5));
                    modelo.addRow(v);
                    tablaventas.setModel(modelo);
                }
            }
        }
    }catch(Exception e){
        System.err.println("Error" + e);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Roberto
Val: 4
Ha aumentado su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Listar registros de tabla sql entre dos fechas

Publicado por Roberto (2 intervenciones) el 15/10/2019 06:20:05
todavia necesitas respuesta a esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Listar registros de tabla sql entre dos fechas

Publicado por Billy Joel (876 intervenciones) el 15/10/2019 23:20:24
Acá te dejo el código corregido...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
private void btnfiltroActionPerformed(java.awt.event.ActionEvent evt) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-NN-dd");
    DefaultTableModel modelo = (DefaultTableModel) tablaventas.getModel();
    List<String[]> l = new ArrayList();
    Connection cn = null;
    PreparedStatement pst;
    ResultSet rs;
    try {
        String sql = "SELECT ncomp, nombre, domicilio, dnicuit, fecha FROM ventas_clientes where fecha between ? and ?";
        cn = connect();
        pst = cn.prepareStatement(sql);
        pst.setShort(1, sdf.format(fechadesde.getCalendar().getTime()));
        pst.setShort(2, sdf.format(fechahasta.getCalendar().getTime()));
        rs = pst.executeQuery();
        while (rs.next()) {
            l.add(new String[]{
                rs.getString(1),
                rs.getString(2),
                rs.getString(3),
                rs.getString(4),
                rs.getString(5)
            });
        }
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    } finally {
        try{
            if(cn != null && !cn.isClosed()){
                cn.close();
            }
        }catch(SQLException ex){
            ex.printStackTrace(System.out);
        }
    }
    String [] columnas = new String[modelo.getColumnCount()];
    for (int i = 0; i < columnas.length; i++) {
        columnas[i] = modelo.getColumnName(i);
    }
    String [][] data = new String[l.size()][columnas.length];
    for (int i = 0; i < data.length; i++) {
        data[i] = l.get(i);
    }
    tablaventas.setModel(new DefaultTableModel(data, columnas));
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar