Estoy haciendo una aplicacion que elimine un usuario a una base de datos, de un arrayList y al mismo tiempo del JFrame. Los datos se insertan bien pero cuando le voy a eliminar, me dice que el nombre de la columna no es valido, y me trae el nombre del usuario, que invoco en el metodo. El error que me da es el siguiente:
Cita:
Este es el codigo: com.microsoft.sqlserver.jdbc.SQLServerException: El nombre de columna 'Z' no es válido.
Código Java:
Ver original
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import javax.swing.JFrame; public class Conexion { Connection con; Statement stmt; ResultSet rs; public Conexion(){ try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); con = DriverManager.getConnection( "jdbc:sqlserver://localhost;databaseName=Eventos;user=Sterling;password=123456" ); stmt = con.createStatement(); e.printStackTrace(); e.printStackTrace(); e.printStackTrace(); e.printStackTrace(); } } public void listarUsuario(){ try { rs = stmt.executeQuery( "select * from Usuarios order by Usuario "); while ( rs.next() ){ rs.getString("Nombre") + "\t" + rs.getString("Apellido") + "\t" + rs.getString("Usuario") + "\t" + rs.getString("Contraseña") + "\t" + rs.getString("Perfil") ); } // TODO Auto-generated catch block e.printStackTrace(); } } public ArrayList<Usuario> getUsuario(){ ArrayList<Usuario> usuarios = null; try { rs = stmt.executeQuery("select * from Usuarios order by Usuario "); usuarios = new ArrayList<Usuario>(); while ( rs.next() ){ usuarios.add( new Usuario( rs.getString("Nombre"), rs.getString("Apellido"), rs.getString("Usuario"), rs.getString("Contraseña"), rs.getString("Perfil") ) ); } // TODO Auto-generated catch block e.printStackTrace(); } return usuarios; } public void insertarUsuario(Usuario usuario){ try { stmt.execute("insert into Usuarios(Nombre, Apellido, Usuario, Contraseña, Perfil) values ( '"+ usuario.getNombre() +"', '"+ usuario.getApellido() +"', '" + usuario.getUsuario() +"', '"+ usuario.getContraseña() +"', '"+ usuario.getPerfil() +"') "); e.printStackTrace(); } } public void eliminarUsuario( Usuario usuarios ){ try { [SIZE="5"]stmt.execute(" delete from Usuarios where Usuario = " + usuarios.getUsuario() );[/SIZE] // TODO Auto-generated catch block e.printStackTrace(); } } Conexion conecta = new Conexion(); conecta.listarUsuario(); } }
Y aqui está el query que elimina el usuario:
Código Java:
Ver original
import java.util.ArrayList; import javax.swing.table.AbstractTableModel; ArrayList<Usuario> usuarios; Conexion con; Modelo(){ con = new Conexion(); usuarios = con.getUsuario(); } [SIZE="5"]public void eliminar(int fila){ con.eliminarUsuario(usuarios.get(fila)); usuarios.remove(fila); fireTableRowsDeleted(fila, fila); }[/SIZE] public int getColumnCount() { return encabezado.length; } public int getRowCount() { return usuarios.size(); } return encabezado[x]; } public void añadir(Usuario usuario){ con.insertarUsuario(usuario); usuarios = con.getUsuario(); fireTableDataChanged(); } Usuario usuario = usuarios.get(x); switch (y){ case 0: retorno = usuario.getNombre(); break; case 1: retorno = usuario.getApellido(); break; case 2: retorno = usuario.getUsuario(); break; case 3: retorno = usuario.getContraseña(); break; case 4: retorno = usuario.getPerfil(); } return retorno; } }
Gracias por cualquier ayuda que me puedan brindar.
Si alguno quisiera probar la aplicacion, les dejo las otras 2 clases.
Código Java:
Ver original
package mantenimiento; public class Usuario { return Nombre; } Nombre = nombre; } return Apellido; } Apellido = apellido; } return Usuario; } Usuario = usuario; } return Contraseña; } Contraseña = contraseña; } return Perfil; } Perfil = perfil; } super(); Nombre = nombre; Apellido = apellido; Usuario = usuario; Contraseña = contraseña; Perfil = perfil; } }