2010-12-15 13 views
1

In meinem C# -Code habe ich einen ODBC-Datenreader, der das Ergebnis eines Aufrufs einer gespeicherten Prozedur mit einem Parameter ist. Beim Ausführen des Programms durch den Kunden, beim Abrufen der Ergebnisse aus dem Datenreader, mit einer While-Schleife, wird es irgendwann durch den Befehl rdr.Read() stoppen und nur für eine nicht definierte Anzahl von Minuten und dann weitermachen.Was würde verursachen, dass ein OdbcDataReader hängen bleibt?

while (rdr.Read()) {Somecode...} 

Was könnte dieses Verhalten verursachen?

+1

ODBC ist eine Abstraktionsschicht für eine Reihe verschiedener Datenquellen, ohne genau zu wissen, mit welcher Art von Datenquelle Sie verbunden sind, sowie die Details bezüglich der Prozedur, Art/Menge der verarbeiteten Daten sagen. – casperOne

+0

Die 'Read'-Methode greift wahrscheinlich bei jedem Aufruf auf die Datenbank zu, was Sie beschreiben können, wenn die Datenbank ausgelastet ist. Versuchen Sie stattdessen, die Daten in DataTable zu lesen. –

Antwort

1

irgendwann geht es weiter durch den rdr.Read() Befehl und tatenlos für eine unbestimmte Anzahl von Minuten und dann zu stoppen.

Weil es auf Daten wartet. Betrachten Sie im Grunde die Datenquelle und finden Sie heraus, warum es hängt.

Der Vertrag des Lesers ist "entweder auf Daten warten oder eine Ausnahme auslösen". Offensichtlich haben Ihre Daten eine lange Auszeit (oder keine) und Daten fließen nicht ein (wie Sie erwarten).

Verwandte Themen