
Boton Modificar en JTable conectado a SQL Server
Publicado por christopher (2 intervenciones) el 14/11/2015 23:46:37
Disculpen tengo un inconveniente estoy creando mi boton de Modificar para modificar (obviamente) los datos que agregue a un JTable conectada a SQL Server y me bota error de "el indice 0 esta fuera del intervalo"
try {
String sql ="UPDATE TUsuarios SET Nombre='"+textField1.getText()+"',Apellido='"+textField2.getText()+"',Sexo='"+textField4.getText()+"',Telefono='"+textField5.getText()+"',Correo='"+textField6.getText()+"',Usuario='"+textField7.getText()+"',Contraseña='"+textField8.getText()+"', WHERE DNI='"+textField3.getText()+"'";
int fila = tab.getSelectedRow();
String dao = (String)tab.getValueAt(fila,2);
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(0, textField1.getText());
ps.setString(1, textField2.getText());
ps.setString(2, textField3.getText());
ps.setString(3, textField4.getText());
ps.setString(4, textField5.getText());
ps.setString(5, textField6.getText());
ps.setString(6, textField7.getText());
ps.setString(7, textField8.getText());
ps.setString(7,dao);
int n = ps.executeUpdate();
if (n>=0){
Limpiar();
Llenar();
JOptionPane.showMessageDialog(null, "USUARIO MODIFICADO");
}
}catch (Exception ex){
JOptionPane.showMessageDialog(null, "ERROR"+ex.getMessage());
}
}
y mi boton Llenar es el siguiente y pues limpiar deja en blanco los textField
void Llenar() {
try {
con = ConexionLogin2.geConnection();
String[] titulos = {" Nombre", "Apellido", "DNI", "Sexo", "Telefono", "Correo", "Usuario", "Contraseña"};
String sql = "select * from TUsuarios";
model = new DefaultTableModel(null, titulos);
set = con.createStatement();
ResultSet rs = set.executeQuery(sql);
String[] fila = new String[8];
while (rs.next()) {
fila[0] = rs.getString("Nombre");
fila[1] = rs.getString("Apellido");
fila[2] = rs.getString("DNI");
fila[3] = rs.getString("Sexo");
fila[4] = rs.getString("Telefono");
fila[5] = rs.getString("Correo");
fila[6] = rs.getString("Usuario");
fila[7] = rs.getString("Contraseña");
model.addRow(fila);
}
tab.setModel(model);
} catch (Exception e) {
e.printStackTrace();
}
}
try {
String sql ="UPDATE TUsuarios SET Nombre='"+textField1.getText()+"',Apellido='"+textField2.getText()+"',Sexo='"+textField4.getText()+"',Telefono='"+textField5.getText()+"',Correo='"+textField6.getText()+"',Usuario='"+textField7.getText()+"',Contraseña='"+textField8.getText()+"', WHERE DNI='"+textField3.getText()+"'";
int fila = tab.getSelectedRow();
String dao = (String)tab.getValueAt(fila,2);
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(0, textField1.getText());
ps.setString(1, textField2.getText());
ps.setString(2, textField3.getText());
ps.setString(3, textField4.getText());
ps.setString(4, textField5.getText());
ps.setString(5, textField6.getText());
ps.setString(6, textField7.getText());
ps.setString(7, textField8.getText());
ps.setString(7,dao);
int n = ps.executeUpdate();
if (n>=0){
Limpiar();
Llenar();
JOptionPane.showMessageDialog(null, "USUARIO MODIFICADO");
}
}catch (Exception ex){
JOptionPane.showMessageDialog(null, "ERROR"+ex.getMessage());
}
}
y mi boton Llenar es el siguiente y pues limpiar deja en blanco los textField
void Llenar() {
try {
con = ConexionLogin2.geConnection();
String[] titulos = {" Nombre", "Apellido", "DNI", "Sexo", "Telefono", "Correo", "Usuario", "Contraseña"};
String sql = "select * from TUsuarios";
model = new DefaultTableModel(null, titulos);
set = con.createStatement();
ResultSet rs = set.executeQuery(sql);
String[] fila = new String[8];
while (rs.next()) {
fila[0] = rs.getString("Nombre");
fila[1] = rs.getString("Apellido");
fila[2] = rs.getString("DNI");
fila[3] = rs.getString("Sexo");
fila[4] = rs.getString("Telefono");
fila[5] = rs.getString("Correo");
fila[6] = rs.getString("Usuario");
fila[7] = rs.getString("Contraseña");
model.addRow(fila);
}
tab.setModel(model);
} catch (Exception e) {
e.printStackTrace();
}
}
Valora esta pregunta


0