2010-12-15 56 views
1

私のC#コードでは、パラメータを持つストアドプロシージャの呼び出しの結果であるODBCデータウェアハウスがあります。 顧客がプログラムを実行しているときに、whileループを使用してdatareaderから結果を取得しているときに、rdr.Read()コマンドで停止し、未定義の分数だけ待機してから続行します。OdbcDataReaderがハングする原因は何ですか?

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

この現象の原因は何ですか?いくつかの点で

+1

ODBCは、接続しているデータソースの種類を正確に把握せずに、さまざまなデータソースの抽象化レイヤです。また、呼び出されるプロシージャの詳細、処理されるデータのタイプ/量、不可能です言う。 – casperOne

+0

'Read'メソッドは、呼び出されるたびにデータベースにアクセスしている可能性があるので、あなたの説明は、データベースがビジー状態のときに発生する可能性があります。代わりにデータをDataTableに読み込んでみてください。 –

答えて

1

は rdr.Read()コマンドによって停止し、わずか数分の不定数の に立つと は、次に続けます。

データを待っているためです。基本的にデータソースを見て、なぜそれがハングアップするのか把握してください。

読者の契約は「データを待つか、例外をスローする」ことです。明らかに、あなたのデータのsuorceは長いタイムアウト(またはなし)を持ち、データが(期待通りに)流入していません。

関連する問題