Erro de DataReader aberto

15/04/2013

Esse é o erro:
Já existe um DataReader aberto associado a este Command que deve ser fechado primeiro.

E esse é meu código. Há realmente um DataReader, mas está depois deste e eu posso abrir vários DataReader, certo? Abaixo meu código:
....
for (int dia_conta = 0; dia_conta < totalDias; dia_conta++)
{
//Contagem dos documentos triados
comandoSQL.AppendLine("select COUNT(id_triagem) as tt from tbl_Triagem " +
"where CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24), dt_cadastro))) = ''" + dataPeriodo[dia_conta] + "''");
this.cmd = new SqlCommand(comandoSQL.ToString(), sqlConexao);
cmd.ExecuteNonQuery();
SqlDataReader dro = cmd.ExecuteReader();
if (dro.HasRows)
{
while (dro.Read())
{
totalTriagem[dia_conta] = Convert.ToDouble(dro[0]);
}
}
}
...

Pjava

Respostas

16/04/2013

Pjava

Para essa situação, resolvi pq em outra query eu consegui trazer o count que eu precisava, porem não entendi o porque do erro. Sei bem que o DataReader ele é único, mas o que disse é que ele não estava aberto e dava esse erro. Se eu comento a linha dele, a outra query que tem a mesma coisa não dá erro. Só queria entender isso.
Responder Citar

16/04/2013

Joel Rodrigues

Pra resolver isso você precisa adicionar um parâmetro na string de conexão. Veja este link: [url]http://msdn.microsoft.com/en-us/library/h32h3abf(v=vs.80).aspx[/url].
Responder Citar

16/04/2013

Joel Rodrigues

Estou marcando este tópico como Concluído.
Responder Citar