Querys Simultâneas

.NET

22/05/2007

boa tarde....
estou com uma estrutura similar a esta:
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:

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?


Newtonneto

Newtonneto

Curtidas 0

Respostas

Rjun

Rjun

22/05/2007

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


GOSTEI 0
Newtonneto

Newtonneto

22/05/2007

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


GOSTEI 0
Rjun

Rjun

22/05/2007

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


GOSTEI 0
Newtonneto

Newtonneto

22/05/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


GOSTEI 0
Carlosrodrigop

Carlosrodrigop

22/05/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


GOSTEI 0
POSTAR