Array
(
)

Querys Simultâneas

Newtonneto
   - 22 mai 2007

boa tarde....
estou com uma estrutura similar a esta:
#Código

using System.Data.SqlClient;

string strSQL = "";
string connectionString = ".....SQL Server....";
SqlConnection Cnn = new SqlConnection(connectionString);

SqlCommand Cmd1 = new SqlCommand();
Cmd1.Connection = Cnn;
SqlCommand Cmd2 = new SqlCommand();
Cmd2.Connection = Cnn;

strSQL = "SELECT * FROM ....";
Cmd1.CommandText = strSQL;
SqlDataReader drd1 = Cmd1.ExecuteReader();

strSQL = "SELECT * FROM ....";
Cmd2.CommandText = strSQL;
SqlDataReader drd2 = Cmd2.ExecuteReader();




e com isto tenho o seguinte erro ao executar a segunda Query:

Citação:

There is already an open DataReader associated with this Command which must be closed first.


bom... estou usando SqlCommands diferentes... não vejo o pq do erro...
alguem pode me dar uma luz?

Rjun
   - 23 mai 2007

O problema é que você só pode ter um objeto DATAREADER aberto por conexão.

Newtonneto
   - 23 mai 2007

isto signifca que eu teria de ter 2 conexões para esta estrutura?

Rjun
   - 24 mai 2007

Por que você precisa de dois datareaders ao mesmo tempo?

Newtonneto
   - 24 mai 2007

porque na aplicação em que estou trabalhando preciso fazer o seguinte:
enquanto varro uma tabela
com as colunas do resultado preparo uma nova query

Carlosrodrigop
   - 12 jun 2007

Joga os dados obtidos em cada uma das consultas em um datatable diferente e apos cada consulta, feche o datareader, manter datareader aberto apos uma consulta siples nao é uma boa pratica de programacao pois vc fica mantendo a conexao aberta com o BD.

Depois e ter os dados no datatable varre cada um deles e faz a regra de negócio que vc deseja