Datareader mit diesem Befehl zugeordnet, der zuerst geschlossen werden muss
-
05-07-2019 - |
Frage
Ich erhalte die folgenden Fehler;
„Es gibt bereits eine offene Datareader mit diesem Befehl zugeordnet, der zuerst geschlossen werden muss.“
ist es, weil ich den Leser in foreach-Schleife verwendet? oder was das Problem sein könnte? Grüße BK
foreach( Apple a in listApple )
{
....
using (SmartSqlReader reader = Db.CurrentDb.ExecuteReader(sp))
{
while (reader.Read())
{
a.blablabla += reader.GetInt32("BLA_BLA_BLA");
}
}
.....
}
Lösung
Versuchen Sie Folgendes:
using (SmartSqlReader reader = Db.CurrentDb.ExecuteReader(sp))
{
while (reader.Read())
{
a.blablabla += reader.GetInt32("BLA_BLA_BLA");
}
reader.Close();
}
Andere Tipps
Haben Sie die SmartSqlReader implemeneted zu schließen, wenn es entsorgt wird? Die regelmäßigen Daten Leser die IDisposable-Schnittstelle implementieren und rufen Schließen von der Dispose-Methode.
Wenn Sie schließen es nicht richtig wird es das Command-Objekt, bis der Garbage Collector besetzt hält die Leser finden und reinigen Sie es auf.
Fügen Sie reader.Close()
die SmartSqlReader
schließen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow