Foros del Web » Programación para mayores de 30 ;) » Java »

Incremento en uno de una tabla

Estas en el tema de Incremento en uno de una tabla en el foro de Java en Foros del Web. Hola les vengo con otra pregunta necesito que al presionar un botón todos los datos de mi tabla de aumenten en 1 y que los ...
  #1 (permalink)  
Antiguo 14/12/2014, 23:15
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Incremento en uno de una tabla

Hola les vengo con otra pregunta necesito que al presionar un botón todos los datos de mi tabla de aumenten en 1 y que los que sean mayor a 7 se eliminen tengo un código hecho pero cada vez que lee uno aumenta

ConexionSQL mysql = new ConexionSQL();
Connection cb = mysql.Conectar();
String nc ,nom, sem = "", tut = " ";
String sSQL = "";
int r=0;
String mensaje = "";
sSQL = "SELECT Semestre FROM programacion";
try {
Statement st = cb.createStatement();
ResultSet rs = st.executeQuery(sSQL);
while(rs.next()){

sem = rs.getString("Semestre");
r = Integer.parseInt(sem);
r=r+1;
sSQL = "UPDATE programacion " +
"SET Semestre = ? ";



try{
sem = String.valueOf(r);
PreparedStatement pst = cb.prepareStatement(sSQL);

pst.setString(1, sem);

int n = pst.executeUpdate();
if (n > 0){
CargarTabla("");
JOptionPane.showMessageDialog(null, mensaje);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
}



} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
  #2 (permalink)  
Antiguo 14/12/2014, 23:30
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Incremento en uno de una tabla

Hola:

Normal que cada que vez que leas uno se incremente, si metes el update dentro del bucle de lectura.

Si quieres que sea al pulsar un botón, pon el código del update en el actionPerformed del botón, y no en el bucle de lectura.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/12/2014, 23:48
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

pero para poder sacar los datos que tengo que hacer la lectura en la tabla no? y poder aumentarla agregándole mas 1

Última edición por KiriittoxD; 15/12/2014 a las 00:02
  #4 (permalink)  
Antiguo 15/12/2014, 00:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Incremento en uno de una tabla

Hola:

Tienes dos opciones.

1. Haz la lectura de la tabla y guarda los datos en memoria (un array, hashtable o lo que quieras). Cuando tengas que incrementar, haz el update incrementando el dato que te has guardado en memoria. Si esos datos los estás mostrando ya en algún sitio (¿un JTable quizás?), ya los tienes en memoria (en el JTable), por lo que no te haría falta hacer otro almacén de memoria.

2. En el botón de incrementar, haz la lectura e incrementa, como estás haciendo ahora, pero solo del dato que te interese incrementar.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 15/12/2014, 00:46
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

Ok lo intentare y si me sale algún error lo pongo gracias de antemano
  #6 (permalink)  
Antiguo 15/12/2014, 03:13
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

Lo hice como me dijo y funciona bien hasta el momento de meter los datos, todos lo numero al principio salen bien pero al momento de hacer esto me mete el mismo numero en todos

for (int a=0 ;a <c;a++){
String sSQL = "UPDATE programacion " + "SET Semestre = ? ";
String ñ = Integer.toString(x[a]);
try {
PreparedStatement pst = con.prepareStatement(sSQL);

JOptionPane.showMessageDialog(null, ñ);
pst.setString(1,ñ);

int n = pst.executeUpdate();
if (n > 0){
CargarTabla("");


}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
  #7 (permalink)  
Antiguo 15/12/2014, 06:46
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Incremento en uno de una tabla

¿Y esto JOptionPane.showMessageDialog(null, ñ); qué saca? ¿Siempre el mismo valor?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 15/12/2014, 08:08
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

si el mismo valor lo puse para ver que numero daba y es el mismo
  #9 (permalink)  
Antiguo 15/12/2014, 13:30
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Incremento en uno de una tabla

Pues como tienes

String ñ = Integer.toString(x[a]);

entonces es que todos los valores de x son el mismo. Revisa qué valores estás metiendo ahí.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #10 (permalink)  
Antiguo 15/12/2014, 20:04
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

Lo termine haciendo asi y me sigue saliendo el mismo error

String numerosmas1[];
numerosmas1 = new String [c];


String sSQL = "UPDATE programacion " +
"SET Semestre = ? ";
for (int a=0 ;a <c;a++){
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sSQL);
PreparedStatement pst = con.prepareStatement(sSQL);
numeromas1[a] = String.valueOf(x[a]);
pst.setString(1, numeromas1[a]);

int n = pst.executeUpdate();
if (n > 0){
CargarTabla("");


}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}


}

x[a] es donde saque los valores antes y los metí en el array de numeromas1 convertido a String ya que si no no lo acepta
  #11 (permalink)  
Antiguo 16/12/2014, 01:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Incremento en uno de una tabla

Hola:

Como te comenté antes, el problema parece ser que x[a] es siempre igual. Por más que toques este código que NO es el que rellenas x[a], seguirás teniendo el mismo problema. Revisa cómo rellenas x[a].

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #12 (permalink)  
Antiguo 16/12/2014, 01:58
 
Fecha de Ingreso: diciembre-2014
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

Pero de hecho al momento de llenar x[a] puse que me desplegara un mensaje para ver el numero que se estaba introduciendo y me salian los numero correctos




try {
ResultSet rp1 = null;

Statement stat = con.createStatement();

rp1 = stat.executeQuery("SELECT COUNT(*) FROM programacion");

if (rp1.next())
c = rp1.getInt(1);

} catch (SQLException ex) {
Logger.getLogger(AlumnosOP.class.getName()).log(Le vel.SEVERE, null, ex);
}
c=c;

x= new int [c];
for (int a=0;a<c;a++){
String sSQL;
sSQL = "SELECT Semestre FROM programacion ";
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sSQL);
while(rs.next()){
sem = rs.getString("Semestre");
x[a]=Integer.parseInt(sem);
x[a]=x[a]+1;

}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
String d[];
d = new String [c];


String sSQL = "UPDATE programacion " +
"SET Semestre = ? ";
for (int a=0 ;a <c;a++){
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sSQL);
PreparedStatement pst = con.prepareStatement(sSQL);
d[a] = String.valueOf(x[a]);
pst.setString(1, d[a]);

int n = pst.executeUpdate();
if (n > 0){
CargarTabla("");


}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}


}

perdón que siga con lo mismo si me mostraras donde esta el error y como se corregiría es que ya estuve buscando y simplemente no lo logro todavía soy un poco nuevo en esto y hay muchas cosas que no se

Última edición por KiriittoxD; 16/12/2014 a las 02:03
  #13 (permalink)  
Antiguo 16/12/2014, 03:20
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Incremento en uno de una tabla

Hola:

Deberías meter el código en tags de programación para que sea más fácil de seguir. Fíjate en donde rellenas x[a]

Código Java:
Ver original
  1. for (int a=0;a<c;a++){
  2.    String sSQL;
  3.    sSQL = "SELECT Semestre FROM programacion ";
  4.    try {
  5.       Statement st = con.createStatement();
  6.       ResultSet rs = st.executeQuery(sSQL);
  7.       while(rs.next()){
  8.          sem = rs.getString("Semestre");
  9.          x[a]=Integer.parseInt(sem);
  10.          x[a]=x[a]+1;
  11.       }
  12. }

Haces un bucle para rellenar los elementos del array. En cada iteración, haces un select de todos los registros de la base de datos (no hay where ninguno) y vas machacando el valor a[x] sucesivamente con los valores leídos, de forma que al final x[a] tendrá el úlitmo valor del select + 1.

Y así con todos los valores de a.

¿Dónde imprimes esos valores para ver que son distintos?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #14 (permalink)  
Antiguo 16/12/2014, 14:49
 
Fecha de Ingreso: septiembre-2014
Ubicación: Chile
Mensajes: 7
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Incremento en uno de una tabla

Creo que el error es de la consulta a la base de datos.
puede ser que
Código Java:
Ver original
  1. sSQL = "UPDATE programacion " +
  2. "SET Semestre = ? ";
falte un where id = 2 o algo asi ?

Etiquetas: incremento, mysql, programa, string, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.