Preencher JCombobox com Banco de Dados Access[RESOLVIDO]
3 respostas
dalsim
Olá..estou desenvolvendo um programa de controle de estoque do zero..e estou com um problema em preencher uma jcombobox com os dados de um bd em acces..
segue o código
publicvoidpreencheCombobox(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// Dados da conexo Stringurl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/testamdb/estoque.mdb";con=DriverManager.getConnection(url,"","");// Variavel que permite a execucao de comandos sql System.out.println("-------> Conexão bem sucedida!");Vector<String>busca=newVector();rs=stmt.executeQuery("select nome from unidade order by nome");while(rs.next()){busca.add(rs.getString("ufestado"));}jComboBox3.addItem(busca);stmt.close();con.close();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Dados não encontrados"+e);}catch(Exceptione){System.out.println("Não foi possível conectar ao banco: "+e.getMessage());}}
Ele deveria carregar nesta combobox os dados que tenho cadastrado referentes as unidades cadastradas(litros,metros,tonelads..etc);
li alguns tópicos no fórum,mais nenhum q se aproxime disso..
se alguém puder ajudar,agradeço :roll: :roll:
publicvoidpreencheCombobox(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// Dados da conexo Stringurl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/testamdb/estoque.mdb";con=DriverManager.getConnection(url,"","");// Variavel que permite a execucao de comandos sql System.out.println("-------> Conexão bem sucedida!");Vector<String>busca=newVector();rs=stmt.executeQuery("select nome from unidade order by nome");while(rs.next()){busca.add(rs.getString("nome"));}jComboBox3.addItem(busca);stmt.close();con.close();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Dados não encontrados"+e);}catch(Exceptione){System.out.println("Não foi possível conectar ao banco: "+e.getMessage());}}
tinha esquecido de trocar o nome do campo na inserção,mais po problema persiste..
Ziguifrid
Eu faria assim:
Tela onde vai estar a combobox.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagecombobox;importClasses.ComboboxClasse;importConsulta.Combobox;importjava.util.Iterator;importjava.util.List;importjavax.swing.JOptionPane;/** * * @author MAM */publicclassPrincipalextendsjavax.swing.JFrame{intnaorepete=0;/** * Creates new form Principal */publicPrincipal(){initComponents();}privatevoidJCB_AccessMouseClicked(java.awt.event.MouseEventevt){try{//Preenche a comboboxif(naorepete==0){//esta variável evita que apareça dados repetidos na jcomboBox.Comboboxcmd=newCombobox();Listlistaf=cmd.nome();Iteratorit=listaf.iterator();while(it.hasNext()){ComboboxClassee=(ComboboxClasse)it.next();Stringnome=e.getNome();JCB_Access.addItem(nome);}}naorepete=1;}//TRYcatch(Exceptione){JOptionPane.showMessageDialog(rootPane,e.getMessage(),"OPS!!!",WIDTH);}}
Classe Conexao
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageConexao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjavax.swing.JOptionPane;/** * * @author michel */publicclassConexao{staticConnectioncon=null;publicstaticConnectionconectar()throwsClassNotFoundException{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// Dados da conexo Stringurl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Users/MAM/Documents/access/teste.mdb";con=DriverManager.getConnection(url,"","");// Variavel que permite a execucao de comandos sql System.out.println("-------> Conexão bem sucedida!");}catch(SQLExceptione){JOptionPane.showMessageDialog(null,e);}returncon;}}
Onde vai fazer a pesquisa.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageConsulta;importClasses.ComboboxClasse;importConexao.Conexao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.ArrayList;importjava.util.List;/** * * @author MAM */publicclassCombobox{Connectioncon=null;Stringsql=null;Listcombobox=newArrayList();publicCombobox()throwsClassNotFoundException{con=Conexao.conectar();}publicListnome()throwsException{sql="select nome from MAM order by nome";PreparedStatementps=con.prepareStatement(sql);ResultSetrs=ps.executeQuery();while(rs.next()){Stringnome=rs.getString("nome");ComboboxClassec=newComboboxClasse();c.setNome(nome);combobox.add(c);}returncombobox;}}
A classe para setar os nomes
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageClasses;/** * * @author MAM */publicclassComboboxClasse{privateStringnome;/** * @return the nome */publicStringgetNome(){returnnome;}/** * @param nome the nome to set */publicvoidsetNome(Stringnome){this.nome=nome;}}