2016-12-27 225 views
0

我想檢查我的連接到mongoDB是否成功?我曾嘗試這個代碼,但它不完全工作(這是在成功連接的情況下工作得)如何檢查mongoDB連接是否成功在C#

var client = new MongoClient("mongodb://name:[email protected]***.mlab.com:port/db"); 
var db = client.GetDatabase("db"); 
var coll = db.GetCollection<Book>("book"); 

var server = client.GetServer(); 
server.Connect(); 


if(server.State.ToString() == "Connected") 
{ 
      //do something 
} 
else 
{ 
      //do something 
} 

編輯: 我想要做的是這樣的:

if(server.isConnected){ form2.show();} else { console.write("error");}

+0

IIRC你不得到一個異常?只是陷阱。當然,直到你實際執行一個操作時,纔會提出這個問題,像連接這樣的東西本身不會做任何事情,嘗試檢索一些統計信息或一個原始的ping命令。 – Lloyd

+0

如何使用ping?什麼平安準確請嗎? –

回答

2

創建之後的客戶端嘗試獲取對服務器的引用,然後調用Ping函數。這種設計拋出異常的方法,如果服務器是不是還活着,所以我們可以用的try-catch取代的if-else塊:

var server = client.GetServer(); 
try { 
    server.Ping(); 
    Console.WriteLine("Connected"); //or form2.show(); 
} 
catch(ex) 
{ 
    Console.WriteLine("Failed"); 
} 

更多細節:ping documentation

+0

我試過了,但它什麼也沒做,它停止了我的應用程序。我想要的東西是:if(server.isConnected){form2.show();} else {console.write(「error」)} thanks –

+0

我已經爲您的案例添加了一個編輯 – ivamax9

+0

感謝您的幫助,但它太慢在失敗的情況下從服務器獲得答案? –