C# Erreichbarkeit des SQL-Servers prüfen

Deathcore

Lieutenant
Registriert
Apr. 2009
Beiträge
712
Hallo,

ich schon wieder :)

zum Problem:

Ich schreibe ein Tool was auf einen SQL-Server zugreift. Der Verbindungaufbau klappt auch soweit super.

Aber ich möchte in der Anwendung prüfen ob die SQL-Verbindung erfolgreich aufgebaut werden konnte (Anmeldung des Users auf Server stimmt,keine Blockierung durch Firewall etc).

Und je nach dem ein Statusicon anzeigen!

Leider liefert mir Google und sonstige Quellen wie Openbooks keine Antwort.

Habe es aktuell so probiert, aber leider zeigt er die verbindung immer als erfolgreich an

Code:
    try
            {
                connection.Open();
            }
            catch
            {

                Verbindung_status = false;
            }
 
über einen LinqToSQL DataContext kannst du es folgendermaßen machen:

if(DataContext.DatabaseExists())
{
....
}
 
Code:
         bool Verbindung = true;
            string myConnectionString = "SERVER=xxx;" +
                            "DATABASE=xxxx;" +
                            "UID=xxxxxx;" +
                            "PASSWORD=xxxxxx;";

            MySqlConnection connection = new MySqlConnection(myConnectionString);
            MySqlCommand command = connection.CreateCommand();
            command.CommandText = "select befehl ;);

            try
            {
                connection.Open();
            }
            catch
            {
            
                Verbindung = false;
            }




             if (Verbindung == true)
            {
                //Verbindung steht und Verbunden bild anzeigen!
                string PfadBild = "C:\\icon_disconnected.png";
                StreamReader SR = new StreamReader(PfadBild);
                Bitmap Bild = new Bitmap(SR.BaseStream);
                SR.Close();
                sqlverbindung_pic.Image = Bild;


            }
            else
            {
                //Verbindung fehlgeschlagen  und nicht verbundenbild anzeigen!
                string PfadBild = "C:\\icon_connected.png";
                StreamReader SR = new StreamReader(PfadBild);
                Bitmap Bild = new Bitmap(SR.BaseStream);
                SR.Close();
                sqlverbindung_pic.Image = Bild;


            }
 
Kann das sein, dass du die falschen Bilder verlinkt hast?
Bei Verbindung==false zeigst du icon_connected an, bei true zeigst du icon_disconnected an.
Bis du mal im Debugmodus mit Haltepunkt durch den Code gegangen, dann müsstest du ja genau sehen, in welchen Pfad er geht.
 
jup sieht so aus, im übrigen kannst du in diesem Fall statt dem boolean Flag "Verbindung" auch einfach die Property IsOpen des SqlConnection Objekts abfragen...

if(connection.IsOpen)
{
// Offen
}
else
{
// Geschlossen
}
 
Danke das klappt nun!

Eine weitere Frage wie kann ich die Daten aus dem SQL-Select in eine Variable speichern?
 
Zurück
Oben