[Resolvido] Retornar apenas um tipo de sexo em um comboBox

Bom dia.

Estou com um problema em que o combo só retorna um código com sexo
feminino, não retorna todos os campos de sexo feminino.

Deem uma olhada no trecho que faz o select:

[code] Statement st;
ResultSet rs;

try {

st = con.createStatement();
rs = st.executeQuery("SELECT  t1.codGado FROM tabela1 t1 WHERE t1.sexoCria = 'feminino'");
rs.next();
boxCod.addItem(rs.getString("codGado"));

st.close();
} catch (SQLException sqlex) {
         JOptionPane.showMessageDialog(this, "Erro ao retornar dado!\n" + sqlex,
         "Erro", JOptionPane.ERROR_MESSAGE);
     }[/code]

Acho que é no momento em que se é adicionado o valor no combo, bem aqui:

Como proceder?

Obrigado.

[quote=dark123]Bom dia.

Estou com um problema em que o combo só retorna um código com sexo
feminino, não retorna todos os campos de sexo feminino.

Deem uma olhada no trecho que faz o select:

[code] Statement st;
ResultSet rs;

try {

st = con.createStatement();
rs = st.executeQuery("SELECT  t1.codGado FROM tabela1 t1 WHERE t1.sexoCria = 'feminino'");
rs.next();
boxCod.addItem(rs.getString("codGado"));

st.close();
} catch (SQLException sqlex) {
         JOptionPane.showMessageDialog(this, "Erro ao retornar dado!\n" + sqlex,
         "Erro", JOptionPane.ERROR_MESSAGE);
     }[/code]

Acho que é no momento em que se é adicionado o valor no combo, bem aqui:

Como proceder?

Obrigado.[/quote]

Ja tentou criar uma Lista e depois dar um new no seu comboBox passando essa lista como parametro
para o seu boxCod

[quote=dark123]Bom dia.

Estou com um problema em que o combo só retorna um código com sexo
feminino, não retorna todos os campos de sexo feminino.

Deem uma olhada no trecho que faz o select:

[code] Statement st;
ResultSet rs;

try {

st = con.createStatement();
rs = st.executeQuery("SELECT  t1.codGado FROM tabela1 t1 WHERE t1.sexoCria = 'feminino'");
rs.next();
boxCod.addItem(rs.getString("codGado"));

st.close();
} catch (SQLException sqlex) {
         JOptionPane.showMessageDialog(this, "Erro ao retornar dado!\n" + sqlex,
         "Erro", JOptionPane.ERROR_MESSAGE);
     }[/code]

Acho que é no momento em que se é adicionado o valor no combo, bem aqui:

Como proceder?

Obrigado.[/quote]

Em vez de

rs.next();
boxCod.addItem(rs.getString("codGado"));

faça

while (rs.next()){
    boxCod.addItem(rs.getString("codGado"));
}

dessa forma, você vai iterar por todos os seus registros. Do jeito que você está fazendo, só está recuperando o primeiro registro…

jogue todos os retornos da consulta em um vetor de string “String vetor[]” depois adicione este vetor no combo!

Pessoal,

Só um lembrete: pelo código que o dark123 postou, o problema é que ele não está sabendo iterar pelo ResultSet. As sugestões para criar uma lista ou um vetor com os resultados, apesar de bem intencionadas, não vão resolver o problema dele. Para criar uma lista ou vetor, ele tem que iterar pelo ResultSet.

[quote=pango][quote=dark123]Bom dia.

Estou com um problema em que o combo só retorna um código com sexo
feminino, não retorna todos os campos de sexo feminino.

Deem uma olhada no trecho que faz o select:

[code] Statement st;
ResultSet rs;

try {

st = con.createStatement();
rs = st.executeQuery("SELECT  t1.codGado FROM tabela1 t1 WHERE t1.sexoCria = 'feminino'");
rs.next();
boxCod.addItem(rs.getString("codGado"));

st.close();
} catch (SQLException sqlex) {
         JOptionPane.showMessageDialog(this, "Erro ao retornar dado!\n" + sqlex,
         "Erro", JOptionPane.ERROR_MESSAGE);
     }[/code]

Acho que é no momento em que se é adicionado o valor no combo, bem aqui:

Como proceder?

Obrigado.[/quote]

Em vez de

rs.next();
boxCod.addItem(rs.getString("codGado"));

faça

while (rs.next()){
    boxCod.addItem(rs.getString("codGado"));
}

dessa forma, você vai iterar por todos os seus registros. Do jeito que você está fazendo, só está recuperando o primeiro registro…
[/quote]

Haha, com o while deu certo, nossa eu tinha me esquecido disso, ôh cabeça…

Obrigado pango, como você mesmo disse, neste caso, as sugestões para criar uma lista
ou um vetor não resolveriam. No laço while foi bem mais simples e é o recomendável para este tipo de problema…

Abraços a todos que postaram.

Até +