"Diesem Befehl ist bereits ein geöffneter DataReader zugeordnet"

18/08/2009 - 10:34 von Markus | Report spam
Hallo zusammen,

also das Problem mit zwei DataReader an einem Command ist mir ja bekannt.
Darum habe ich anstatt

Dr = Cmd.ExecuteReader();

while (Dr.Read())
{
Cmd.CommandText = "Irgendwas";
Cmd.ExecutNonQuery();
}
Dr.Close()

folgendes geschrieben:

SqlCommand CmdExecute = new SqlCommand("", Cnn);
Dr = Cmd.ExecuteReader();

while (Dr.Read())
{
CmdExecute.CommandText = "Irgendwas";
CmdExecute.ExecutNonQuery();
}
Dr.Close()

Obwohl ich also einen zweiten Command instanziiert habe und diesen nutze,
kommt die Fehlermeldung unveràndert. Darf nur ein DataReader pro Connection
existieren? Oder muss ich nach einem anderen Fehler in meinem Code suchen?
;-))

Werde wohl mal auf die Schnelle auf eine DataTable umsteigen ...

Viele Grüße

Markus
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
18/08/2009 - 18:22 | Warnen spam
Hallo Markus,

"Markus" schrieb im Newsbeitrag news:%

also das Problem mit zwei DataReader an einem Command ist mir ja bekannt.



eher mit einer Connection.

http://msdn.microsoft.com/de-de/lib...eader.aspx

[Zitat]
| Wàhrend der Verwendung des SqlDataReader ist die zugeordnete SqlConnection durch
| den Informationsfluss für den SqlDataReader belegt, sodass an der SqlConnection
| keine anderen Operationen ausgeführt werden können, außer diese zu schließen. Dies
| gilt solange, bis die Close-Methode von SqlDataReader aufgerufen wird. Sie können
| z. B. keine Ausgabeparameter abrufen, bis Sie Close aufgerufen haben.

Mitunter ein Grund, warum ich DataReader in meinen Projekten mir gar nicht verwende.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen