Id não vem como resultado da pesquisa so os outros dados=([resolvido]

4 respostas
P
Ola, estou fazendo uma pesquisa e jogo os itens em uma tabela todos os resultados aparecem com exceção do id pois este campo da tabela fica vazio =( é q eu preciso do Id para gerenciar as mudanças é mais fácil modificar o item correto. Meu codigo é o seguinte;
DefaultTableModel modelo;
	private void geraTabela()
	{
		try
		{
			Vector<String> cabecalho = new Vector<String>();
			Vector<Vector> linhas = new Vector<Vector>();

			resultado = comando.executeQuery("select valor_entrada,valor_total,parcelas,observacao,valor_parcela,data_pgto,Id from financeiro where rc_aluno='"+ t2.getText() +"'");
			resultado.next();
			final ResultSetMetaData rsmd = resultado.getMetaData();
			for( int i = 1; i <= rsmd.getColumnCount(); ++i )
				cabecalho.addElement( rsmd.getColumnName( i ) );
			do
			{
				Vector<Object> linhaAtual = new Vector<Object>();
				for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
				{
					switch( rsmd.getColumnType(i))
					{
					case Types.VARCHAR:
						linhaAtual.addElement(resultado.getString(i));break;
					case Types.TIMESTAMP:
						linhaAtual.addElement(resultado.getDate(i));break;
					}

				}
				linhas.addElement(linhaAtual);

			}
			while (resultado.next() );
			modelo=new DefaultTableModel(linhas,cabecalho);
			table = new JTable(modelo);...

obg pela ajuda ;)

4 Respostas

drsmachado

É...
Mesmo com o código não estar ali no [code] (houve uma falha ali?) eu tentei entender.

Não há chamadas ao ID após a consuta ter sido efetuada.

I

Bom, eu não trabalho muito com resultset mas parece que ali vc fez um switch de Types, vc identificou os campos VARCHAR e TIMESTAMP, para os campos que retornam uma String ou um Date, mas o Id provavelmente é um Long ou Integer, verifica isso ai, talvez esteja faltando um case no seu switch

P
ola! olha só troquei o Timestamp por
case Types.INTEGER:
e a minha jtable nem apareceu na tela! :shock: depois troquei po
case Types.LONGNVARCHAR:
e a tabela apareceu mas o Id nao =( coloquei um system depois desta linha
linhaAtual.addElement(resultado.getString(i));
e no console ficou assim:
260.0_1
2600.0_2
1_3
_4
585.0_5
03/02/2011_6
260.0_1
2600.0_2
2_3
_4
585.0_5
03/02/2011_6
260.0_1
2600.0_2
3_3
_4
585.0_5
03/02/2011_6
260.0_1
2600.0_2
4_3
_4
585.0_5
03/02/2011_6
UPDATE financeiro SET data_pgto = '03/02/2010' WHERE rc_aluno='11'and Id='null'
:shock: obrigada pela ajuda! [quote]Mesmo com o código não estar ali no
(houve uma falha ali?) eu tentei entender.[/quote]
ja arrumei :P 

Tinhas razão era o tipo timestamp que tava dando problema pois eu fiz o seguinte:
[code]case Types.INTEGER:
						linhaAtual.addElement(resultado.getInt(i));System.out.println(resultado.getString(i)+"*"+i);break;
agora aparece o Id!!!!! obrigada pela ajuda :)
I

Disponha

Criado 18 de maio de 2011
Ultima resposta 18 de mai. de 2011
Respostas 4
Participantes 3