Saludos.
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: com.microsoft.sqlserver.jdbc.SQLServerException: El nombre de columna 'Z' no es válido.
Este es el codigo:
Código Java:
Ver originalimport 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 {
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() +"') ");
System.
out.
println("No se puede insertar valor repetido"); 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();
}
}
public static void main
(String[] args
) { Conexion conecta = new Conexion();
conecta.listarUsuario();
}
}
Y aqui está el query que elimina el usuario:
Código Java:
Ver originalimport 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]
String [] encabezado
= {"Nombre",
"Apellido",
"Usuario",
"Contraseña",
"Perfil"}; public int getColumnCount() {
return encabezado.length;
}
public int getRowCount() {
return usuarios.size();
}
public String getColumnName
(int x
) { return encabezado[x];
}
public void añadir(Usuario usuario){
con.insertarUsuario(usuario);
usuarios = con.getUsuario();
fireTableDataChanged();
}
public Object getValueAt
(int x,
int y
) { 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 originalpackage mantenimiento;
public class Usuario {
return Nombre;
}
public void setNombre
(String nombre
) { Nombre = nombre;
}
return Apellido;
}
public void setApellido
(String apellido
) { Apellido = apellido;
}
return Usuario;
}
public void setUsuario
(String usuario
) { Usuario = usuario;
}
public String getContraseña
() { return Contraseña;
}
public void setContraseña
(String contraseña
) { Contraseña = contraseña;
}
return Perfil;
}
public void setPerfil
(String perfil
) { Perfil = perfil;
}
super();
Nombre = nombre;
Apellido = apellido;
Usuario = usuario;
Contraseña = contraseña;
Perfil = perfil;
}
}