2010-08-19 4 views
1

Je veux vérifier ma connexion au serveur SQL avant de me connecter avec DB, et j'ai besoin de mettre à jour l'état de la connexion SQL Server dans mon interface graphique.Comment vérifier la connexion SQL dans C# .Net?

Voici le code que je vérifie la connexion SQL, mais je ne pouvais pas en mesure d'obtenir le statut souvent

Scénario:

  • Arrêtez le service du serveur SQL de fenêtre Services
  • Course à pied le projet et affichera l'état "Connexion non disponible"
  • Démarrer le service du serveur SQL et afficher "Connection Live"
  • Et encore une fois Arrêtez le service de serveur SQL et je ne reçois pas le statut "" Connexion non disponible ". Il est de retour statut "Connexion Live"
  • Il n'est pas entrer dans le bloc catch

code:

private void timer1_Tick(object sender, EventArgs e) 
    { 
     bool Flag = false; 
     try 
     { 
      using (SqlConnection con = new SqlConnection(strcon)) 
      { 
       con.Open(); 
      } 
     } 
     catch (SqlException s) 
     { 
      Flag = true; 
      label1.Text = "Connection Not available"; 
     } 
     finally 
     { 
      if (Flag == false) 
      { 
       label1.Text = "Connection Live"; 
      } 
     } 
    } 

Répondre

1

Si le serveur n'est pas disponible, votre application se bloque pendant la tentative de connexion. Cela devrait être exécuté dans un worker d'arrière-plan et le statut mis à jour avec un callback.

1

Enveloppez votre tentative de connexion dans un try..catch (il devrait utiliser un using déclaration à tout le moins). [L'emplacement exact d'un try..catch dans votre code dépend quelque peu de la structure de votre code.]

Il est inhabituel pour une application de vérifier si un serveur SQL est disponible. Après tout, il peut être indisponible en millisecondes après que vous avez testé et affiché qu'il est disponible.

Questions connexes