evitar superposicion de turnos
Publicado por Francisco (56 intervenciones) el 18/10/2018 22:40:56
Hola, mi codigo es este.
Lo ejecuto pero no me agrega nada a la base de datos. Yo quiero que cuando ingrese datos, por ejemplo si lo que tipeo en la caja de texto es igual al valor del registro de la tabla en la base de datos se me abra un JOption Pane que me diga que hay superposicion de turnos, de lo contrario, que se ejecute el insert.
¿Esto es posible a nivel de programación?, ¿Comparar lo que estoy tipeando con los resultset de la tabla turnos?
Traté de hacerlo así pero no se me ejecuta el insert. ¿Cómo puedo lograr lo que quiero?
Muchas Gracias
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
String sql = "INSERT INTO `turnos`(`codigo`, `dni`, `matricula`, `motivo`, `fecha_hora`) VALUES(?,?,?,?,?)";
String sqlConsulta = "SELECT * FROM turnos";
JComboBoxMatricula cargarMatriculas= new JComboBoxMatricula();
JComboBoxDni cargarDocumentos = new JComboBoxDni();
try {
SimpleDateFormat formatterDB = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jComboBoxDni = cargarDocumentos.consultarDocumentos(jComboBoxDni);
jComboBoxMatricula = cargarMatriculas.consultarMatriculas(jComboBoxMatricula);
String valueDni = jComboBoxDni.getSelectedItem().toString();
String valueMatricula = jComboBoxMatricula.getSelectedItem().toString();
java.sql.Timestamp fechaHora = new java.sql.Timestamp(formatterDB.parse(jTxtFechaHora.getText()).getTime());
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sqlConsulta);
PreparedStatement ps = conn.prepareStatement(sql);
Integer valueCodigo = Integer.parseInt(jTxtCodigo.getText());
ps.setInt(1, Integer.parseInt(jTxtCodigo.getText()));
ps.setInt(2,Integer.parseInt(valueDni));
ps.setInt(3,Integer.parseInt(valueMatricula));
ps.setString(4, jTxtMotivo.getText());
ps.setTimestamp(5, fechaHora);
List<Integer> matriculas = new ArrayList<Integer>();
List<java.sql.Timestamp>fechasHora = new ArrayList<java.sql.Timestamp>();
while(rs.next()){
for(Integer m:matriculas){
matriculas.add(rs.getInt("matricula"));
}
for(java.sql.Timestamp k:fechasHora){
fechasHora.add(rs.getTimestamp("fecha_hora"));
}
}
for(Integer m:matriculas){
for(java.sql.Timestamp k:fechasHora){
if(valueMatricula.equals(m) && fechasHora.equals(k)){
javax.swing.JOptionPane.showMessageDialog(null, "hay superposicion de turnos");
break;
}else{
ps.executeUpdate();
}
}
}
mostrarDatos();
} catch (SQLException ex) {
Logger.getLogger(AbmTurno.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(AbmTurno.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParseException ex) {
Logger.getLogger(AbmTurno.class.getName()).log(Level.SEVERE, null, ex);
}
Lo ejecuto pero no me agrega nada a la base de datos. Yo quiero que cuando ingrese datos, por ejemplo si lo que tipeo en la caja de texto es igual al valor del registro de la tabla en la base de datos se me abra un JOption Pane que me diga que hay superposicion de turnos, de lo contrario, que se ejecute el insert.
¿Esto es posible a nivel de programación?, ¿Comparar lo que estoy tipeando con los resultset de la tabla turnos?
Traté de hacerlo así pero no se me ejecuta el insert. ¿Cómo puedo lograr lo que quiero?
Muchas Gracias
Valora esta pregunta


0