Ajuda com laços de repetição for para contadores de linhas (RESOLVIDO)

9 respostas
samea

Oi pessoal to precisando criar um laço de repeticao para inumerar linhas do banco de dados., so que eu naum sei o que usar pra dizer qunatas linhas ele tem,
for (int i =0; i<contador; i++){
so que eu naum sei o que devo colocar no lugar de contador.

SE ALGUEM AI SOUBER COMO FAZER ME AJUDEM POR FAVOR
BJKAS SAMEA

9 Respostas

Lavieri

se vc não sabe a quantidade, provavelmente deve existir algum teste, durante o código, onde possa descobrir se ainda há mais registros… este caso pode ser feito assim

boolean needMoreTest = true; int count = 0; while (needMoreTeste) { //aki vc faz suas ações com cada linha count++; //count é apenas um contador pra saber quantas linhas tem needMoreTest = hasMoreLines(); //hasMoreLines() precisa responder c ainda há mais linhas } System.out.println("Foram percorridas " + count + " linhas"); //aqui imprime o número de linhas que foram percorridas

o loop será continuo ate que “needMoreTeste” seja dado como true …

é dificil saber o q vc esta usando, pra percorrer as linhas do banco, e assim te responder com mais claresa…

geidivan

Esclareça melhor sua dúvida. Como enumerar linhas? Quer saber quantas linhas há no seu banco de dados? Que banco de dados está utilizando? Você está acessando ele via JDBC ou o quê?

tlevi

Vc pode fazer o seguinte:

int numeroDeLinhas = 0;

//Consulta a ser realizada
String SQL = “Select titulo, autor, total_faixas from MeusCDs”;

//Execução da consulta
ResultSet rs = stm.executeQuery(SQL);

//Percorrendo a consulta

while( rs.next() ){

numeroDeLinhas++;

}
geidivan

Se você quer o que o tlevi disse, o número de linhas de uma consulta através de JDBC, basta fazer o seguinte:

ResultSet rs = stm.executeQuery(SQL); 

rs.last();
int linhas = rs.getRow();
samea

Desculpa pessoal eu naum sou explicar direito a minha duvida
eu tenho dados do banco de dados que eu imprimo dentro de um
textArea e depois salvo como arquivo txt
O problema eh que eu tenho que numerar todas as linhas em sequencia
tipo assim

1 blabababababbababa
2 blabababababbababa
3 blabababababbababa
4 blabababababbababa
5 blabababababbababa

eu tentei fazer isso com esse for aqui:

if (strnom_cliente != null){

for (int i =0; i<1000; i++){

int contador;

contador = +1;

String strcontador = new Integer (contador).toString();

str_contador = strcontador;

}
}

o problema eh que ele imprimir so 1 na frente de todos as linhas

eu tambem tentei assim

if (strnom_cliente != null){

for (int i =0; i<1000; i++){

int contador;

contador = +i;

String strcontador = new Integer (contador).toString();

str_contador = strcontador;

}

com o i no lugar do um mas ele imprimi 999 na frente de todas as linhas
se alguem ai souber me ajudar eu acho que a minha logica que ta errada
por favor me ajudem
bjokas

geidivan

Háaaa. É isso. Então tá mais fácil.

O problema é sua variável contador. Toda vez que o laço se repete você cria ela novamente, ou seja, ela sempre vai valer 0 ou um lixo qualquer. Faço o seguinte:

if (strnom_cliente != null){
   for (int i =0; i<1000; i++){
         String strcontador = String.valueOf(i + 1);    
         str_contador = strcontador; 
   }   
   
}
marcosharbs

sua variavel contador está dentro do for, crie ela antes do for e ai dentro do for apenas incremente um nela
assim:

int contador = 0; 
if (strnom_cliente != null){ 
   for (int i =0; i<1000; i++){ 
        contador += 1; 
        String strcontador = new Integer (contador).toString(); 
        str_contador = strcontador; 
   } 
}
samea

Obrigada pela forca pessoal
bjokas Samea :oops:

samea

So para quem tem duvidas eu fiz assim:

str_contador = String.valueOf(i + 1); i = (i + 1);

Coloquei isso dentro do while e pronto!

Criado 7 de janeiro de 2009
Ultima resposta 11 de fev. de 2009
Respostas 9
Participantes 5