對不起,這個主流的職位。在長時間研究這個問題後,我從未真正找到過解決方案。很多原因可能會引發這個問題。 所以我提出這個帖子要求一些理解。處理錯誤超時已過期。最大游泳池大小連接在2005年達到
我操縱數據庫..將它們填充到數組,列表,比較,然後再次將它們存回數據庫。在所有的過程我用很多像查詢和ExecuteScalar
MysqlCommand
,導致module.vb
創造了很多的new mysqlcommand
我使用vb.net和XAMPP MySQL作爲數據服務器.. 和我有2個數據庫:他們「再相同,但大小不同..
問題是:當我測試的第二個數據庫(在記錄的信息量的大小更小) 我的程序工作良好,沒有延遲或超時時間error`
但是當我改變數據源與我的第一個數據庫日月光(4900個與記錄)時,timeout expired
彈出直接導致我的VS 2005變得沒有響應
按我在谷歌的研究,我已經找到了一些解釋這個錯誤
VS 2005仍然有一個錯誤,那就是
timeout expired
。解決方案是升級vs版本由於嘗試在同一臺服務器上打開相同的連接而引發錯誤。
這個錯誤信息並不完全是什麼意思。它會告訴你該連接得滿滿的,但在現實中連接的插槽仍然可用
我使用太多
mysqlcommand
變量,我在module.vb
多達50 mysqlcomand變量已經!!!
我的個人意見:我可以不適用第一個解決方案..我的計劃會產生很多錯誤的,如果我是在升級成VS 2010或更高
第二個解決方案:我真的不明白這是什麼意思。我認爲這是因爲我試圖再次打開相同的連接(例如CMD_open1。executereader),但同一個連接已經打開並且沒有關閉
在我的程序中,我已經確保每次我'使用CMD.execute讀者或的ExecuteNonQuery或執行標量M,I加CMD name.connection.dispose()
,正確關閉打開的連接,現在另一個新的
所以我的問題是
- 做了我所有的個人猜測正確?如果沒有,請告訴我正確的
- 根據我的問題,我個人認爲原因是我使用太多
mysqlcommand
,即使我每次使用時都關閉了連接。那是對的嗎?對此有什麼正確的解釋? - 什麼是適用於解決我的問題的適當解決方案?
thx閱讀。我真的很渴望解決這個問題的答案。
這裏是我的module.vb
,它包含很多mysqlcommand
變量
哦,你是對的..我忘了問..哪一個更好?用功能關閉連接還是處理? 和'CMD.connection.dispose()'和'CMD.connection.close'有什麼區別。每次我使用連接時,我總是用「處理」而不是兩者來關閉它。什麼是最合適的方式? –
@SoniGunz - 關閉就足夠了。處理通話關閉。最佳做法是在[使用聲明](http://msdn.microsoft.com/en-us/library/htd05whh.aspx)中使用資源密集型對象以確保正確處置。 – JDB