2009-03-19 5 views

Antwort

2

Beim DataReader-Typ muss die Verbindung geöffnet bleiben, während Sie auf die Daten zugreifen. Dies ist keine getrennte Datenquelle wie zB eine DataTable. Sie müssen das selbst abschließen, sonst warten Sie darauf, dass es aus natürlichen Gründen stirbt :).

Interesse an Alternativen? Versetzen Sie Ihre Daten in eine DataTable, DataSet, oder konvertieren Sie die zurückgegebenen Zeilen in eine Liste von benutzerdefinierten Objekten und geben Sie eine davon zurück.

Hoffe, dass hilft!

+0

Ich werde zweitens eine DataTable stattdessen verwenden. – ProfK

+0

Danke. Ich kenne die Vorteile von Databases und so. Ich schaue mir die Codebasis eines Clients an und sehe einige Beispiele meines obigen Codes. Ich wollte nur eine zweite Meinung, bevor ich anfing, Korrekturen vorzunehmen. –

0

Ich glaube, Sie müssen es selbst schließen. Der DataBind des Repeaters schließt beispielsweise seine Datenquelle nicht. Wenn es sich nicht um eine IDataSource handelt, wird sie einfach als IEnumerable interpretiert und foreach aufgerufen.

0

Ich habe den Code für Repeater mit Reflector geprüft und schließt den IDataReader nicht. Du musst es selbst tun.

Verwandte Themen