Netbeans - Boton Modificar en JTable conectado a SQL Server

 
Vista:
sin imagen de perfil

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();
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio

Boton Modificar en JTable conectado a SQL Server

Publicado por Julio (2 intervenciones) el 16/11/2015 22:25:14
Hola Christopher.

El error que te da es debido a que no estás utilizando bien la sintaxis de PreparedStatemente, este es un ejemplo:

String updateTableSQL = "UPDATE TUsuarios SET Nombre= ? (lo mismo con otros campos) WHERE DNI = ?;";
PreparedStatement preparedStatement = dbConnection.prepareStatement(updateTableSQL);
preparedStatement.setString(1, "JULIO");
preparedStatement.setString(2, '56478907y');
// ejecutamos el consulta SQL
preparedStatement .executeUpdate();

Como puede ver el primer valor es el 1, y tienes que utilizar las interrogaciones (?) como te muestro en el ejemplo.

Espero que te se útil

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar