Erro ao exbir campos na tabela

1 resposta
Vinifilpo

Oi!!
Estou criando uma janela que trás todos os registros do banco de dados em uma Jtabel.
No banco tenho uma tabela chamada clientes com os seguintes campos:
Id(chave primaria) , nome , endereco, telefone, cep , cidade, numero, estado, email, celular e fotos.

Usei o seguinte codigo na classe Relatorio:

[color=darkblue]package relatorio;

[color=#444444]/**
*

  • @author Vinícius
    
    <em>/
    
    import java.awt.</em>;
    
    import java.awt.event.<em>;
    
    import java.sql.</em>;
    
    import javax.swing.<em>;
    
    import java.util.</em>;
    

    /* This method is called from within the constructor to

    • initialize the form.
    • WARNING: Do NOT modify this code. The content of this method is
    • always regenerated by the Form Editor.
      */
    // <editor-fold defaultstate=collapsed desc=Generated Code>
    
    public class Relatorio extends JFrame{
    
    private Connection con;
    
    private JTable tabela;
    
public Relatorio(){

super("Agenda - Nomes" );

String url = "jdbc:odbc:clientes";

String usuario = "";

String senha = "";

try{

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

con = DriverManager.getConnection(url, usuario, senha);

}

catch (Exception e){

JOptionPane.showMessageDialog(null,"Conexão não estabelecida","Mensagem do Programa", JOptionPane.ERROR_MESSAGE);

}

buscaTabela();

setSize(800,400);

setVisible(true);

}

public static void main(String args[]){

Relatorio app = new Relatorio();

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private void buscaTabela(){

Statement st;

ResultSet res;

try{

Vector cabecalho = new Vector();

Vector linhas = new Vector();

st = con.createStatement();

res = st.executeQuery("SELECT * FROM clientes ORDER BY Nome");

res.next();

ResultSetMetaData rsmd = res.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); ++i)

cabecalho.addElement(rsmd.getColumnName(i));

do{

linhas.addElement(proximaLinha(res,rsmd));

}

while (res.next());

tabela = new JTable(linhas,cabecalho);

JScrollPane scroller = new JScrollPane( tabela );

getContentPane().add(scroller, BorderLayout.CENTER);

validate();

st.close();

}

catch (SQLException sqlex){

}

}

private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd){

Vector LinhaAtual = new Vector();

try{

for (int i = 1; i <= rsmd.getColumnCount(); ++i)

switch(rsmd.getColumnType(i)){

case Types.VARCHAR: LinhaAtual.addElement(rs.getString(i));

break;

case Types.TIMESTAMP: LinhaAtual.addElement(rs.getDate(i));
break;

case Types.NUMERIC: LinhaAtual.addElement(new Long(rs.getLong(i)));

break;

}

}

catch(SQLException e){

}

return LinhaAtual;

}

}[/color][/color]

porem quando compilo o programa e abro a janela de relatorios ele me trás o cabeçalho certinho, porém não me tras dos dados da coluna ID. Na coluna de titulo ID, vem os nomes, de endereco vem os numeros e assim por diante.
Creio que seja um errinho simples de lógica, porém não consegui achá-lo.
aguardo uma ajuda, enquanto isso vou tentando solucionar esse problema.
Obrigado!!

1 Resposta

Ziguifrid

http://guj.com.br/posts/list/214099.java

Criado 31 de julho de 2010
Ultima resposta 1 de ago. de 2010
Respostas 1
Participantes 2