2010-12-15 86 views
1

在我的C#代碼中,我有一個ODBC數據讀取器,它是使用參數調用存儲過程的結果。 當客戶運行程序時,使用while循環從數據讀取器中檢索結果,在某個時候,它會停止rdr.Read()命令並等待數分鐘,然後繼續。什麼會導致OdbcDataReader掛起?

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

什麼會導致這種行爲?

+1

ODBC是許多不同數據源的抽象層,不知道您連接的數據源的類型,以及有關所調用過程的詳細信息,正在處理的數據的類型/數量,這是不可能的說。 – casperOne 2010-12-15 14:06:50

+0

「Read」方法可能每次調用時訪問數據庫,因此當數據庫繁忙時可能會發生這種情況。嘗試將數據讀入DataTable中。 – 2010-12-15 14:13:52

回答

1

在某個時候會停止由 rdr.Read()命令,並只是 代表分鐘的未定義數量和 然後繼續。

因爲它等待數據。基本上看數據源並找出它爲什麼會掛起。

讀者的合同是「等待數據或拋出異常」。很明顯,你的數據超長時間(或沒有),數據沒有流入(如你所期望的)。