Re: preencher combo + recordset

7 respostas
caiofilipini

Preste atenção nesse trecho:

<blockquote><div class="quote-author">“rbis2004”:</div>while (rs.next()) {

StrMulheres[i++]= rs2.getString(“Nome”);

}</blockquote>

Você testa rs.next() e usa rs2.getString(“Nome”). Algo errado aí, não? :wink:

[]'s

7 Respostas

L

observe que no seu while de inserção, ele não insere o primeiro elemento, uma vez que já começa testando o next.

pra resolver basta colocar antes do while
sua linha de inserção.

[]'s

caiofilipini

Colocou por engano no código ou aqui no post? :shock:

aborges

Considerecoes:

1 - Evite criar arrays com nro fixo de posicoes ( 100 )
2 - Ler o valor antes do while eh bem feio heim! Acho q assim fica mais elegante:

if(rs.isLast() && rs.isFirst()){ StrMulheres[i++]= rs.getString("Nome"); }else{ do { StrMulheres[i++]= rs.getString("Nome"); }while (rs.next()); }

T

Realmente, só 100 mulheres! Em vez de ter de tomar conta de só 100 mulheres (seu guarda do harém é muito folgado e vai te deixar na mão com uma ArrayIndexOutOfBoundsException se passar desse número), é melhor usar um List (ArrayList), e se realmente você precisa de um array, use Collection.toArray().

Por exemplo:

public void exibirMulheres() { String[] strMulheres; List listMulheres = new ArrayList(); try { while (rs.next()) { listMulheres.add (rs.getString("Nome"); } strMulheres = (String[]) listMulheres.toArray (new String[0]); // Exiba as suas strMulheres.length mulheres... } catch (Exception ex) { ex.printStackTrace(System.err); } }

rbis2004

Olá amigos, estou tentando preencher uma combobox com o resultado de uma consulta sql que é armazenada num RecordSet, porém não sei porque o primeiro elemento da lista não aparece, p.ex. se foi selecinado 10 registros só aparecem 9.
O código que estou usando está abaixo:

public void ExibirMulheres() {

String[] StrMulheres = new String[100];

try {

int i=0;

while (rs.next()) {

StrMulheres[i++]= rs2.getString(Nome);

}

cmbMulheresi.setItems(StrMulheres);

ps.close();

rs.close();

}

catch (Exception ex) {

System.out.println(ex);

}

}
rbis2004

Eu coloquei rs2 por engano, é rs somente…

rbis2004

Obrigado pela ajuda, realmente tinha que colocar o comando de inserção antes do while.

[]s

Criado 12 de agosto de 2004
Ultima resposta 12 de ago. de 2004
Respostas 7
Participantes 5