Tô desenvolvendo uma aplicação desktop, usando banco de dados access.
Eu tenho uma tabela chamada Disciplinas e nessa tabela eu tenho as colunas cod, série, disciplina, professor.
Na hora de efetuar a matrícula do aluno eu preciso pegar as disciplinas referente a série que ele está sendo matrículado. Até aí tudo bem.
Tenho a seguinte instrução, mas não consigo pegar o próximo registro.
try
{
for(int i=0;i<50;i++)
{
Statement stmt2 = consultacli.con.createStatement();
ResultSet rs2 = stmt2.executeQuery ("SELECT * FROM DISCIPLINAS where Serie= '" + Serie +"' " );
if (rs2.next())
{
disciplina[i]=rs2.getString("disciplina");
}
}
}
catch (Exception e)
{
System.err.println ("Erro no comando SQL de Consulta " + e);
}
Já tentei usar: SELECT * FROM DISCIPLINAS where Serie= ‘" + Serie +"’ and cod= " +i+"
Isso porque você faz a mesma consulta i vezes, só é necessário rodar a consulta uma vez… tire o executeQuery e o Statement de dentro do for e faça um while com o seguinte:
[quote=camillopaes]iaheuiahe rpz, vcs são rápidos demais… rsrsrs
valeu msmo.
Não consegui pegar os resultados.
O código ficou assim:
try
{
Statement stmt2 = consultacli.con.createStatement();
ResultSet rs2 = stmt2.executeQuery ("SELECT * FROM DISCIPLINAS where Serie= '" + Serie +"' " );
while (rs2.next())
{
int i=1;
disciplina[i]=rs2.getString("disciplina");
i++;
}
}
catch (Exception e)
{
System.err.println ("Erro no comando SQL de Consulta " + e);
}
}
No BD eu tenho agora, 5 registros. e ele só está me mostrando o ultimo.[/quote]
Amigo. Se voce está usando o i para indicar a posição de armazenamento no vetor, tem que criar a variavel i fora do laço, senao toda vez ele vai ficar com posição 1. E outra, o i tem que começar com 0, pois a contagem da posição começa no zero.