saludos,
supongo que es en este combobox que se sale el el cero de más: jComboBox1.addItem(rs.getString(1));
lo primero es que en la base de datos supongo que las fechas están almacenadas en algun tipo de dato date o timestamp, si es asi la forma correcta es utilizar el método getDate o getTimestamp del result set:
rs.getTimestamp(1);
el .0 que le sale es porque en java 5 se incluyo la precisión de nano segundos en los temas de fecha y hora, entonces al convertir el timestamp a string el le pone los nanosegundos después del punto, la forma correcta de convertir de Timestamp a String es por medio de la clase DateFormat, y que de acuerdo a lo que necesita mostrar (año-mes-dia-hora) considero que la clase SimpleDateFormat le puede servir mejor:
SimpleDateFormat
no tengo un compilador acá a la mano pero pensaría que queda algo asi:
SimpleDateFormat sf = new SimpleDateFormat();
jComboBox1.addItem(sf.format(rs.getTimestamp(1)));
De esa forma me manda en formato dd/mm/yy hh:mm AM/PM
edit: corregí haciendo esto:
jComboBox1.addItem(rs.getString(1).replace(".0", "").trim()); y ya manda sin el .0, pero me esta arrojando java.lang.NullPointerException al consultar.
Consulto de esta forma:
historiac1.setFecha(jComboBox1.getSelectedItem().toString().trim());
javax.swing.JOptionPane.showMessageDialog(null,historiac1.getFecha());
try {
ResultSet rs = con.consultaHistoria(historiac1);
abdomen.setText(rs.getString(21).toUpperCase());
afamiliares.setText(rs.getString(12).toUpperCase());
aobstetras.setText(rs.getString(11).toUpperCase());
apersonales.setText(rs.getString(9).toUpperCase());
quirurgicos.setText(rs.getString(10).toUpperCase());
cardiop.setText(rs.getString(20).toUpperCase());
ccc.setText(rs.getString(18).toUpperCase());
diag.setText(rs.getString(25).toUpperCase());
dir.setText(rs.getString(4).toUpperCase());
extremidades.setText(rs.getString(23).toUpperCase());
fc.setText(rs.getString(14).toUpperCase());
fr.setText(rs.getString(15).toUpperCase());
gentomano.setText(rs.getString(22).toUpperCase());
lab.setText(rs.getString(26).toUpperCase());
mconsulta.setText(rs.getString(8).toUpperCase());
nmadre.setText(rs.getString(7).toUpperCase());
npadre.setText(rs.getString(6).toUpperCase());
peso.setText(rs.getString(16).toUpperCase());
respaciente.setText(rs.getString(3).toUpperCase());
snc.setText(rs.getString(24).toUpperCase());
ta.setText(rs.getString(13).toUpperCase());
talla.setText(rs.getString(17).toUpperCase());
tel.setText(rs.getString(5).toUpperCase());
temp.setText(rs.getString(28).toUpperCase());
torax.setText(rs.getString(19).toUpperCase());
trat.setText(rs.getString(27).toUpperCase());
}
catch(Exception e)
{
javax.swing.JOptionPane.showMessageDialog(null, "Error:"+e);
}
y el método con que consulto es este:
public ResultSet consultaHistoria(medicdoft.beans.historiac h)
{
PreparedStatement ps=null;
ResultSet rs = null;
try
{
ps = c.prepareStatement("select * from historia where cedula="+h.getCod()+", fecha="+h.getFecha()+"");
rs = ps.executeQuery();
while(rs.next())
{
return rs;
}
}catch (Exception ex){
System.out.print("Error al consultar: "+ex);
}
return null;
}
Que estoy haciendo mal?