Lendo/acessando um array

2 respostas
Paloschi

ta acontecendo uma coisa muito istranha olha soh

while (rs.next()) {
				int x=0;
				v.setCodigo(rs.getLong("VEN_CODIGO"));
				stmaux = conn.createStatement();
				rsaux = stmaux.executeQuery("SELECT * FROM tb_itemvenda WHERE itv_codvenda="
						+ rs.getLong("ven_codigo"));
				while (rsaux.next()) {
					Itemvenda itv = new Itemvenda();
					itv.setCodproduto(rsaux.getLong("itv_codproduto"));
					itv.setCodvenda(rsaux.getLong("itv_codvenda"));
					itv.setQuantidade(rsaux.getInt("itv_quantidade"));
					itv.setVlrunitario(rsaux.getFloat("itv_vlrunitario"));
					itemvenda.add(itv);
				};
				System.out.println("valor do x: "+String.valueOf(x));
				v.setItemvenda(itemvenda);
				System.out.println("codigo antes de adicionar: "+v.getCodigo());
				vendas.add(v);	
				System.out.println("codigo depois de adicionar: "+vendas.get(x).getCodigo());
				x++;
			};

resultado:

valor do x: 0
codigo antes de adicionar: 4
codigo depois de adicionar: 4
valor do x: 0
codigo antes de adicionar: 5
codigo depois de adicionar: 5
valor do x: 0
codigo antes de adicionar: 6
codigo depois de adicionar: 6
valor do x: 0
codigo antes de adicionar: 7
codigo depois de adicionar: 7
valor do x: 0
codigo antes de adicionar: 8
codigo depois de adicionar: 8
valor do x: 0
codigo antes de adicionar: 9
codigo depois de adicionar: 9

e olha na classe q recebe o array, esse metodo ta em um actionlistener, e ele passa uma posicao pra frente no array e joga na tabela vendas
soh que em vez dele ir pra proxima venda a venda de codigo 5 ele mostra o codigo 9 e nao troca o valor de dentro do vetor
bem confuso neh

Connection c = (Connection) Conection.getInstance().getConnection(0, "exemplo",
					"exemplo", "localhost", "1527", "exemplo");
			
			DAOvenda daov = new DAOvenda(c);
			
			List<Venda> vendas = new ArrayList<Venda>();	
			vendas=daov.buscarTodos();
			
			Venda v = new Venda();
			
			v = vendas.get(x);
			System.out.println("valor do x: "+ x);
			System.out.println("codigo"+vendas.get(x).getCodigo());
			
			ItemvendaCadastro ivc = new ItemvendaCadastro(vendas.get(x).getItemvenda());
			
			bvenda.getTbVendas().setModel(ivc);
			
			bvenda.getLbCodigo().setText(String.valueOf(vendas.get(x).getCodigo()));
			x++;
			
			
		};

resultado:

valor do x: 0
codigo: 9

2 Respostas

Paloschi

eu declarei as variaveis todas dentro dos whiles respectivos e funciono o.O
pq???

R

simples… o X só vai mudar qndo chegar no fim do primeiro while… dae vai recomeçar o while e o x vai zerar de novo

desse modo ele sempre seria zero

ja a variavel V vc não altera… então ao adicionar o X zera e a variavel V vai acrescentando itens

Criado 24 de junho de 2011
Ultima resposta 25 de jun. de 2011
Respostas 2
Participantes 2