Dúvida no JComboBox x JDBC?!

1 resposta
arm.jr

Estou querendo pegar os dados de uma tabela do banco mysql e armazenar esse dado em um JComboBox.

Pegar os dados do banco ta beleza, o problema e que estou armazenando os dados em um vetor de string e esse vetor eu passo para o Combo, mas não ta funcionando.

Olhem o código ve se da pra entender?

CODIGO

public class Conectar {
public String dados[] = new String[30];

public void ComboCliente()

{

int dados_cadastrados = 0;

Statement st;

ResultSet rs;

try {

st = Conn.createStatement();

rs = st.executeQuery(“select * from amigos”);

while (rs.next())

dados_cadastrados++;

} catch (SQLException e) {

e.printStackTrace();

}
try {
	int cont=0;
	st = Conn.createStatement();
	rs = st.executeQuery("select nome from amigos  where codigo>0");
	while (rs.next())
	  	[color=red]dados[cont]=rs.getString("nome");[/color]		} catch (SQLException e) {
	  e.printStackTrace();
}
	

}

Na outra classe eu pego os dados.

public class BancoMySQL extends JFrame {

Conectar conexao = new Conectar();
[color=darkred]JComboBox       cliente = new JComboBox(s.dados);[/color]

//pego o vetor de string que esta os dados que eu peguei no banco.
.
.

Quando executo não aparece nada no JComboBox, tem outro jeito de adicionar os dados no combo sem usar vetor de strings , sei la??

[size=18]Podem me ajudar?!![/size]

1 Resposta

danielpbvs

Você esta incrementando a variável cont do trecho de código abaixo aonde?

try { 
int cont=0; 
st = Conn.createStatement(); 
rs = st.executeQuery("select nome from amigos where codigo>0"); 
while (rs.next()) 
dados[cont]=rs.getString("nome"); } catch (SQLException e) { 
e.printStackTrace(); 
} 

}

Tenta incrementar esse cont pra ver se o vetor é preenchido.

Caso não solucione o teu problema tentar passar o resultset. Eu tenho uma aplicação web que o combo é preenchido diretamente pelo resultset, dessa maneira:

//realizava a conexao com o banco
<select name="bla">
    <option><%=res.getString("nome")%></option>
</select>
//fechava a conexão com o banco.

Não testei em desktop.

Vê se funciona.

Criado 1 de junho de 2005
Ultima resposta 1 de jun. de 2005
Respostas 1
Participantes 2