[問題]請問如何確定資料庫有開啟?

看板C_Sharp作者 (魚)時間15年前 (2010/05/08 14:41), 編輯推噓2(2011)
留言13則, 5人參與, 最新討論串1/1
請問各位大大們 我用 try{ conn.open(connectionstring); } catch{ return false; } 開啟資料庫 但如果資料庫沒開 會延遲很久才回應 請問是否有可以快速偵測資料庫有開啟的方法 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.221.67.175

05/08 15:08, , 1F
不確定你是不是用OleDbConnection,如果是的話就用
05/08 15:08, 1F

05/08 15:09, , 2F
if (conn.State == ConnectionState.Open) 判斷
05/08 15:09, 2F

05/08 16:26, , 3F
感謝…但在.open時,如果主機沒開機,會回應很慢
05/08 16:26, 3F

05/08 16:29, , 4F
不知道是否有辦法很快就偵測到
05/08 16:29, 4F

05/08 16:36, , 5F
ado net一般資料庫都有提供timeout連線字串設定
05/08 16:36, 5F

05/08 18:59, , 6F
原PO要問的是DB有沒有開 不是有沒有跟DB連線吧?
05/08 18:59, 6F

05/08 20:53, , 7F
在你的connection string中加上"Connect Timeout=秒數;"
05/08 20:53, 7F

05/08 20:55, , 8F
預設是15秒,如果設定0秒會永遠等待。
05/08 20:55, 8F

05/09 08:50, , 9F
先感謝二位大大…我再試看看設timeout秒數
05/09 08:50, 9F

05/11 11:09, , 10F
目前設了Connection Timeout=2,但還是沒用…
05/11 11:09, 10F

05/11 11:09, , 11F
不知道那發生問題了
05/11 11:09, 11F

05/11 23:53, , 12F
如果該電腦連開機也沒開,那在網路通訊層就擋住了
05/11 23:53, 12F

05/11 23:54, , 13F
Timeout 設定就會無效
05/11 23:54, 13F
文章代碼(AID): #1BvGUfPv (C_Sharp)