ResultSet.getString

Olá, bom dia.

Dúvida: como funciona o método ResultSet.getString( int )?

Faço essa pergunta pois desta maneira funciona:

		StringBuffer aRs = new StringBuffer();
	
		int iCols = rsmd.getColumnCount();
			while( rs.next() )
				for( int i = 1; i <= iCols; i++ )
							aRs.append( rs.getString( i ) );

JOptionPane.showMessageDialog( null, aRs.toString() );

Mas desta não me retorna nada:

JOptionPane.showMessageDialog( null, rs.getString( 0 ) );
JOptionPane.showMessageDialog( null, rs.getString( 1 ) );

Não entendo mesmo :frowning:

A posicao comeca sempre em 1, e nao 0, nesses casos. Voce chamou rs.next() antes de dar o getString() ?

Rafael

LIPE,

ResultSet.getString(int columnIndex) -> columnIndex é o indice referente ao campo do seu select. Este indice começa do 1 e não do 0.

ResultSet.getString(String columnName) -> columnName é o nome do campo referente ao seu select.

Nosso select -> “select codigo, nome, idade from cliente”

rs.getInt(1); -> retorna valor ref. ao campo código
rs.getString(2); -> retorna valor ref. ao campo nome
rs.getInt(3); -> retorna valor ref. ao campo idade

ou

rs.getInt(“codigo”); -> retorna valor ref. ao campo código
rs.getString(“nome”); -> retorna valor ref. ao campo nome
rs.getInt(“idade”); -> retorna valor ref. ao campo idade

Entendi, muito obrigado :smiley:

Mas sobrou outra pergunta: se eu não der um rs.next() antes de fazer isso ele ainda vai estar em BOF, não em rs( 1 ), né?