2008-11-01 13 views
0

我有一個windows服務連接到本地框上的SqlServer數據庫。這在大多數情況下都能正常工作。然而,在一個大客戶中,由於一些罕見和未知的原因,數據庫連接被破壞。發生這種情況時,對DbDataAdapter.Fill的調用將返回一個DataSet,其列數與傳入的select命令(通過顯示期望的SQL的跟蹤日誌以及返回的列數進行驗證)的列數不同。對於前幾個錯誤的DataSet,看起來適配器實例正在返回前一個查詢的結果。即使適配器對象是唯一實例,並且連接/適配器創建調用受線程保護(因爲DbProviderFactory不是線程安全的),也會發生這種情況。是什麼導致DbDataAdapter.Fill使用不正確的列數填充DataSet?

有沒有人體驗過這個或類似的東西?有誰知道什麼可能導致這種情況?在這個時候,我很難爲這個原因想出新的想法。

回答

0

嘗試將連接池關閉一段時間,看看是否可以緩解問題。 我看到這個問題在其他地方問過,我認爲連接池是涉及到的,但我無法確定。我會看看我是否可以找到其他論壇,或者其他人也記得它?

+0

我對這個鏈接非常感興趣,如果你能找到它或幫助我通過搜索想法找到它。我一直在試圖找出它是否是一個連接池問題,所以我可以更加自信地解決我目前的想法。謝謝。 – 2008-11-03 17:41:02

0

你在填充強類型數據集(STDS)嗎?如果填充STDS,如果列名和類型不匹配,則會得到具有一些幻像列的表......即在STDS的模式中定義的那些列,而不是在返回的記錄集中。

+0

不,它不是強類型。這只是一個新的數據集() – 2008-11-02 00:13:20

相關問題