J'ai trouvé la méthode suivante pour déterminer si une base de données est opérationnelle. Cela tente d'ouvrir une connexion à une base de données et si cela échoue, renvoyez false.En C#, quel est le meilleur moyen de déterminer si une base de données est opérationnelle?
private static bool IsDatabaseConnectionUp(string connectionString)
{
System.Data.SqlClient.SqlConnection conn = null;
try
{
conn = new SqlConnection(connectionString);
conn.Open();
return conn.State == System.Data.ConnectionState.Open;
}
catch (SqlException)
{
// There was an error in opening the database so it is must not up.
return false;
}
finally
{
if (conn != null)
{
if (conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
}
}
}
Est-ce la meilleure façon de déterminer si cette base de données est? La raison pour laquelle je n'aime pas cette méthode dépendra de la valeur du délai d'attente, et prendra autant de temps que le délai d'expiration.
Y a-t-il un meilleur moyen?
Vous devez disposer de votre connexion. – tuinstoel
Oui. On dirait que vous laissez la connexion ouverte. –
Ceci est juste un exemple de code, en réalité, j'utilise un Linq Datacontext dont je dispose de la connexion et correctement. –