Autor
|
Tema: Los datos de un jtable no se guardan en la base de datos (Leído 4,210 veces)
|
JL431
Desconectado
Mensajes: 1
|
Estoy haciendo un sistema de abono ya esta todo realizado. Solo que tengo un pequeño detalle, al momento de abonar el sistema hace una resta para que sepa cuanto se adeuda, pero esa resta no se guarda en la base de datos. Todo los demas datos del jtable si se guardan. Quisiera que me apoyaran a revisar mi codigo, la sentencia de ingresar no se si lo estoy poniendo mal.
Alguien que me pueda ayudar porfavor.,,.. Anexo el codigo del boton abonar.
try {
String NºDeVenta = "";
String[] datos = new String[7];
int fila = tbAbono.getSelectedRow();
if (fila == -1) { JOptionPane.showMessageDialog(null, "SELECCIONE EL PRODUCTO QUE DESEA ABONAR"); } else {
String NVenta = tbAbono.getValueAt(filas, 0).toString(); String UltimoAbo = tbAbono.getValueAt(filas, 1).toString(); String ClaArti = tbAbono.getValueAt(filas, 2).toString(); String Arti = tbAbono.getValueAt(filas, 3).toString(); String TV = tbAbono.getValueAt(filas, 4).toString(); String abo = txtAbono.getText(); String restante= tbAbono.getValueAt(filas, 6).toString();
datos[0] = NVenta; datos[1] = UltimoAbo; datos[2] = ClaArti; datos[3] = Arti; datos[4] = TV; datos[5] = abo; datos[6] = restante;
for (int i = 0; i < tbAbono.getColumnCount(); i++) { modelo.setValueAt(datos, filas, i);}
restaa();
PreparedStatement pst = cn.prepareStatement("UPDATE abonos SET Fecha='" + txtFecha.getText() + "',IdArticulo='" + ClaArti + "',NombreArti='" + Arti + "',IdCliente='" + txtclaveclie.getText() + "',NombreClie='" + txtnombre.getText() + "',TotalDeVenta='" + TV + "',Restante='" + restante + "',Abono='" + txtAbono.getText() + "' WHERE IdVenta='" + NVenta + "'"); int n = pst.executeUpdate(); if (n > 0) { JOptionPane.showMessageDialog(null, "EL ABONO SE REALIZO CORRECTAMENTE"); }
}//1
} catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Error al moemto de abonar", JOptionPane.ERROR_MESSAGE); }
|
|
|
En línea
|
|
|
|
llword93ll
Desconectado
Mensajes: 21
|
Puedes probar a actualizar los datos de la base de datos usando resulset.
Por ejemplo, tenemos la base de datos abonos, donde la clave primaria es cod_abono Queremos actualizar la fecha del abono con el cod_abono = 250
Primero debemos tener un objeto Connection conexion;
Creamos un objeto Statement statement = conexion.createStatement();
Mostramos el abono que queremos cambiar filtrando por la clave primaria
Resulset resulset = statement.executeQuery ("select * from abono where cod_abono = " + 250);
posicionamos el puntero sobre el primer resultado (al filtrar por la clave primaria únicamente habrá uno)
resulset.next();
cambiamos por ejemplo la columna fecha_abono, para cambiar una fecha debemos indicar un objeto java.sql.Date, se construye indicando un tiempo en hora linux.
Creamos un objeto GregorianCalendar con la fecha actual GregorianCalendar fechaHoy = new GregorianCalendar();
Creamos el objeto java.sql.Date que sustituira al de la base de datos.
java.sql.Date nuevaFecha = new Date(fechaHoy.getTimeInMillis() );
Actualizamos la fecha del registro de la base de datos.
resulset.updateDate("fecha_abono", nuevaFecha);
Aplicamos los cambios
resulset.updateRow();
|
|
|
En línea
|
|
|
|
daniela Vega
Desconectado
Mensajes: 16
|
Un ejemplo utilizando Mysql
//Iniciamos conexion con la base de datos: ConexionMySQL mysql = new ConexionMySQL(); java.sql.Connection cn= mysql.Conectar(); //aplicamos un modelo a la jtable y obtenemos el numero de filas que tiene DefaultTableModel dtm = (DefaultTableModel) c3.tblExamenSegmentarioF3.getModel(); filas = dtm.getRowCount(); //luego dependiendo del numero de filas que posea la jtable se cambia la instruccion sql if(filas==1){ sSQL8="INSERT INTO examen_segmentario (Parte_cuerpo, Variable, " + "Observaciones, Numero_hc) VALUES(?, ?, ?, ?)"; } else if(filas==2){ sSQL8="INSERT INTO examen_segmentario (Parte_cuerpo, Variable, " + "Observaciones, Numero_hc) VALUES(?, ?, ?, ?), (?, ?, ?, ?)"; } //luego preparamos la ejecucion de la instruccion sql try{ Statement st = (Statement) cn.createStatement(); PreparedStatement pre4 = (PreparedStatement) cn.prepareStatement(sSQL8); //luego creamos un bucle para que vaya asignando a cada campo el valor debido int r=0; for (int j = 0; j <= (filas-1); j++) { pre4.setString(1+r,(String) c3.tblExamenSegmentarioF3.getValueAt(j, 0)); pre4.setString(2+r,(String) c3.tblExamenSegmentarioF3.getValueAt(j, 1)); pre4.setString(3+r, (String) c3.tblExamenSegmentarioF3.getValueAt(j, 2)); pre4.setInt(4+r, numhc); r=r+4; } int q=pre4.executeUpdate(); if ( q>0){ JOptionPane.showMessageDialog(null, mensaje); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex); }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
JTable y base de datos
Java
|
Xedrox
|
1
|
4,383
|
14 Agosto 2011, 04:19 am
por Guerrerohgp
|
|
|
como puedo pasar los datos de un jtable a una base de datos access
Java
|
jclracing
|
1
|
6,092
|
2 Julio 2013, 23:27 pm
por 1mpuls0
|
|
|
al cargar una base de datos, la tabla me aparece vacía (JTable)
Java
|
Belial & Grimoire
|
1
|
3,963
|
30 Agosto 2013, 22:23 pm
por Belial & Grimoire
|
|
|
Resgitro de datos desde un jtable en java netbeans a base de datos mysql
Java
|
Larry16
|
1
|
3,150
|
9 Junio 2016, 20:34 pm
por DIANA KARINA HM
|
|
|
Actualizar JTable en tiempo de ejecucion con datos de una Base de datos
Java
|
MrSimpatia
|
2
|
6,311
|
9 Noviembre 2019, 17:44 pm
por sapito169
|
|