Foro sobre Java SE > Problema reciente al insertar datos
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
Estás intentando formatear una cadena vacía.
La traza completa de una excepción muestra el archivo de tu código y la línea desde donde se lanza la excepción. Sin verla solo puedo suponer que estás haciendo un parse de una cadena vacía, en alguna de esas líneas.
Los errores están donde están, y lo único que se puede hacer es buscarlos para resolverlos. Las especulaciones sobre si antes funcionaba, o si en otras partes funciona, no ayudan.
choces
Este es el error que tira, cuando quiero hacer una eliminacion, para la cual solo uso el nro del paciente(este nro es asignado automaticamente a un textfield, cada vez que se hace clic en la tabla que contiene los datos de esa persona, con el evento mouseclicked es que paso los datos a las casillas)
Error:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "Suarez"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.valueOf(Integer.java:582)
at Vistas.Pacientes.JBotonEliminarActionPerformed(Pacientes.java:2673)
at Vistas.Pacientes.access$800(Pacientes.java:44)
at Vistas.Pacientes$10.actionPerformed(Pacientes.java:1089)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
BUILD SUCCESSFUL (total time: 51 seconds)
Y este es el metodo que use, que lo hice en un boton de la ventana
if(JTablaPaciente.getSelectedRow()!=-1)
{
int numero =Integer.valueOf(JTablaPaciente.getValueAt(JTablaPaciente.getSelectedRow(), 0).toString());
String mensaje="¿Desea eliminar este Paciente: " + numero + " ?";
String titulo="Confirmación";
int resultado = JOptionPane.showConfirmDialog(null, mensaje, titulo, JOptionPane.YES_NO_OPTION);
if(resultado==JOptionPane.YES_OPTION)
{
{
JOptionPane.showMessageDialog(this, Conexion.getInstance().EliminarPaciente(numero));
this.CargarTabla2();
}
}
}
else
{ JOptionPane.showMessageDialog(this, "Debe seleccionar una fila de la tabla, para realizar la operacion"); }
Este metodo funcionaba bien. Lo unico que de la tabla pacientes de mi base de datos, solo saque dos campos, que no me eran utiles.
latinjava
Me gustaria aprender a interpretar estas exepciones y no estar tan desesperada como ahora, ya que se aproxima la fecha en que tengo que presentar este trabajo practico y lo que pense que ya estaba todo listo y funcionando, por algo que nose interpretar, me estanco aqui.
latinjava
El error
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "Suarez"
procede de estas líneas:
at Vistas.Pacientes.JBotonEliminarActionPerformed(Pacientes.java:2673)
at Vistas.Pacientes.access$800(Pacientes.java:44)
at Vistas.Pacientes$10.actionPerformed(Pacientes.java:1089)
Fíjate que estás intentando un parse de una cadena que no es un número: "Suarez"
choces
Ya lo solucione, colocando el nro en un textfield y que lo recupere de ahi, al momento de crear el objeto. Antes lo tomaba al hacer clic sobre la tabla, y recuperando el valor de la columna donde estaba ese nro.
Bueno, sigo con mi prog, tratando de mejorarlo.
Gracias por tu ayuda. Me es muy util. Y lo bueno, uno aprende mas con personas como vos.
latinjava

Hola, nose que hacer, todo me funcionaba ok, lo unico que hice fue instalar unas librerias para ver si me funcionaba el reporte. Y probando de nuevo mi proyecto no puedo hacer las inserciones de datos, que antes lo hacia lo mas bien y no daba error.
Este es lo me tira de error y nose como solucionarlo
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
Este es el metodo que uso para la insercion, pero como les digo en otras ventanas me funciona bien:
public String InsertarConsulta(Consulta co)
{
String resultado="";
try{
AbrirConexion();
st=con.createStatement();
String sql="insert into Consulta (Prestaciones, Precio, NroOrdenMutual, FechaEmision, EstadoConsulta, Turno, Paciente)values ("+co.getPrestaciones()+","
+ ""+co.getPrecio()+","+co.getNroOrdenMutual()+",'"+co.getFechaEmision()+"','"+co.getEstadoConsulta()+"',"+co.getTurno()+","+co.getPaciente()+") ";
st.executeUpdate(sql);
resultado="Inserción exitosa";
}
catch(SQLException e){
System.out.println("No se pudo realizar la insercion:"+ e.getMessage());}
return resultado;
}
Y esto es lo que codifique en el boton, como lo hice en todas mis otras ventanas:
Consulta co=null;
Prestacion pre=(Prestacion)this.JCBPrestacion.getSelectedItem();
int presta=pre.getNroPrestacion();
long precio=Long.parseLong(this.JTFPrecio.getText());
int nromutual=Integer.parseInt(this.JTFNroMutual.getText());
String fecha=fechaString(this.JDCFechaEmision.getCalendar());
String estcon=String.valueOf(this.JCBEstadoConsulta.getSelectedItem());
int nrotur= Integer.parseInt(this.JTFNroTurno.getText());
int nropac= Integer.parseInt(this.JTFNroPaciente.getText());
co=new Consulta(presta,precio,nromutual,fecha,estcon,nrotur,nropac);
JOptionPane.showMessageDialog(this, Conexion.getInstance().InsertarConsulta(co));
Como puede ser que en algunas funcione y en otras no, siendo que hasta ayer me funcionaba todo, o que modifique? les juro que estuve todo el dia revisando el codigo y no logre resolver nada. Si saque algunos campos pero fue desde la base de datos y me asegure de chequear todo en mi aplicacion.
Ojala me ayuden, por favor.
Me fije en internet, pero me dicen que tengo que validar que no esten vacias las cajas de textos, pero el valor que ingreso para realizar la insercion, casi siempre es un nro, que se corresponde con el id de una tabla, y ese numero siempre se lo asigno con el evento mouseclicked de mi tabla, a la casilla de texto correspondiente.
Bueno, espero haberme expresado correctamente, para que pudieran entenderme.
Saludos