Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2010, 22:23
meloncia
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta ayuda con ResultSet en un JTable

Hola a todos ^^ soy nueva en el foro (mas k nada porque nunca habia tenido dudas con la programacion, hasta ahora). Mi problema es el siguiente

Tengo un programa echo con las opciones del entrono grafico de netbeans, y lo que necesito es que al pulsar en un boton se me cargen todos los datos que tengo en la BD de clientes en el JTable. El codigo es el siguiente:

Código PHP:
void leerbd(String consultathrows ClassNotFoundExceptionSQLException{
        
BuscarCliente bc=new BuscarCliente();
        
ResultSet rs null;
        
String codigo null;
        
Connection cn;
        
Statement st;
        Class.
forName("sun.jdbc.odbc.JdbcOdbcDriver");
        
cn DriverManager.getConnection("jdbc:odbc:tienda");
        
st cn.createStatement();
        
rs=st.executeQuery(consulta);
       
        
ResultSetMetaData metaDatos rs.getMetaData();
       
        
//RELLENAR COLLUMNAS
        // Se obtiene el número de columnas.
        
int numeroColumnas metaDatos.getColumnCount();
        
DefaultTableModel modelo = new DefaultTableModel();
        
// Se crea un array de etiquetas para rellenar
        
Object[] etiquetas = new Object[numeroColumnas];
        
// Se obtiene cada una de las etiquetas para cada columna
        
for (int i 0numeroColumnasi++){
            
// Nuevamente, para ResultSetMetaData la primera columna es la 1.
            
etiquetas[i] = metaDatos.getColumnLabel(1);
            
System.out.println(etiquetas[i]);
        }
        
modelo.setColumnIdentifiers(etiquetas);

       
        
//RELLENAR FILAS
        // Bucle para cada resultado en la consulta
        
while (rs.next()){
   
// Se crea un array que será una de las filas de la tabla.
   
Object [] fila = new Object[numeroColumnas];

   
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
   
for (int i=0;i<numeroColumnas;i++){
      
fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
      
System.out.println(fila[i]);
   }
   
// Se añade al modelo la fila completa.
   
modelo.addRow(fila);

}
rs.close();
        
bc.tablaclientes.setModel(modelo);

    } 

Cuando ejecuto este codigo, hago varios prints para ver si esta cogiendo bien las etiketas de las columnas y los datos que tiene que insertar en las filas, y el resultado es este:

run:
id_Cliente
nombre
apellidos
dni
telefono
1
isabel
martinez fulleda
15418669K
600894221
2
ana
martinez
435435435K
586094586
BUILD SUCCESSFUL (total time: 12 seconds)


por lo tanto la consulta está bien echa, lo que no entiendo es porque no me pinta los datos en la tabla...


La consulta que le paso es esta:
consulta = "SELECT id_Cliente, nombre, apellidos, dni, telefono FROM CLIENTE;";


Si me pueden ayudar lo agradeceria mucho ya que tengo que entregar el programa el jueves en clase y si no consigo hacer esto, no puedo seguir porque toda mi aplicacion funciona con tablas.

Gracias de antemano y un saludo ; )