Hiện nay tôi đang sử dụng mã này để kiểm tra xem cơ sở dữ liệu có thể truy cập:ADO.NET: Cách nhanh hơn để kiểm tra xem máy chủ cơ sở dữ liệu có thể truy cập được không?
public bool IsDatabaseOnline(string con)
{
bool isConnected = false;
SQLConnection connect = null;
try {
connect = new SQLConnection(con);
connect.Open();
isConnected = true;
} catch (Exception e) {
isConnected = false;
} finally {
if (connect != null)
connect.Close();
}
return isConnected;
}
Trong khi mã này hoạt động tốt, có một bất lợi. Nếu máy chủ không trực tuyến, nó sẽ mất khoảng 4 giây để mở kết nối trước khi quyết định rằng nó không có sẵn.
Có cách nào để kiểm tra kết nối mà không thực sự mở kết nối và chờ thời gian chờ không? Một cái gì đó giống như một cơ sở dữ liệu tương đương với ping?
Bạn có muốn máy chủ của bạn sẽ được giảm trong một thời gian dài? –
Bạn nên thay đổi điều đó thành 'catch (SqlException)' – SLaks