Errorsabfrage bei einer SQL Verbindung

Bella_Isy

Erfahrenes Mitglied
Hallo Leute,

ich habe mal wieder ein Problem. Ihr könnt mir da besimmt wieder helfen.
Ich möchte mich gern auf meinen Server einlogen, die verbindung steht auch soweit.
Code:
'SQLconnection öffnen
Me.SqlConnection1.ConnectionString = "data source= " & S & ";" & _
"initial catalog= master;" & _
"persist security info=False;" & _
"user id=" & B & ";" & _
"Password=" & PW & ";" & _
"workstation id=" & S & ";" & _
"packet size=4096"

Wie kann ich jetzt bestimmte Fehler abfangen:

  1. Ist der Server vorhanden?
  2. Ist derBenutzer vorhanden?
  3. Hat Benutzer Adminrechte auf dem Server?

Ich wollte es mit einem Try...catch-Abfrage machen. Aber ich weiß nicht wie ich diese Errors abfrage.

Code:
'Überprüfung des Servers und des Benutzers
        Dim S, B, PW As String
        S = Me.txtServer.Text
        B = Me.txtBenutzer.Text
        PW = Me.txtPW.Text
        'Alle Felder ausgefüllt? False: Fehlermeldung 1
        If S = "" Or B = "" Then
            MsgBox("Es würden nicht alle Felder ausgefüllt! Bitte überprüfen Sie die Eingaben", MsgBoxStyle.Critical, "Fehlermeldung 1")
        Else
            'Fehlermeldung-abfrage
            Try
                'verbindung herstellen
                Me.SqlConnection1.ConnectionString = "data source= " & S & ";" & _
                                             "initial catalog= master;" & _
                                             "persist security info=False;" & _
                                             "user id=" & B & ";" & _
                                             "Password=" & PW & ";" & _
                                             "workstation id=" & S & ";" & _
                                             "packet size=4096"
            Catch 'Server vorhanden? False: Fehlermeldung 2
                'MsgBox("Verbindung fehlgeschlagen! Grund:" & Err.string)

            End Try

            'Benutzer vorhanden? False: Fehlermeldung 3
            'Hat Benutzer Admin. Rechte? False: Fehlermeldung 4
            'Form frmAnmeldung wird geschlossen
            Me.Hide()
            'Form willkommen wird geladen, wenn verbindung steht
            Dim Will As New frmWillkommen()
            Will.ShowDialog()
        End If
 
Hallo Bella_Isy,

der Catch Block könnte so aussehen

Code:
          'Catch sql exception
Catch MySQLException As System.Data.SqlClient.SqlException
            MessageBox.Show(MySQLException.ToString, "Deine Sub", MessageBoxButtons.OK, MessageBoxIcon.Error)
         
           'catch odbc exception
Catch MyOdbcException As OdbcException
            MessageBox.Show(MyOdbcException.ToString, "Deine Sub",  MessageBoxButtons.OK, MessageBoxIcon.Error)

            'Catch program exception
Catch MyException As Exception
            MessageBox.Show(MyException.ToString, "Deine Sub", MessageBoxButtons.OK, MessageBoxIcon.Error)

Gruß
Jens
 
Den Fehler solltest du aber bei
Me.SqlConnection1.Open()
abfangen, den erst an dieser Stelle versucht er sich mit der Datenbank zu verbinden und wirft dann bei einem Fehler eine entsprechende Exception.
In der MSDN findet man meist bei der entsprechende Methode, welche Fehler sie werfen könnte.

Außerdem sollte man beachten, das die spezielisierten Exceptions immer zuerst gecatcht werden und die allgemeinen anschliessend.
Ansonsten werden die spezialisierten Exceptions nie behandelt, da die Behandlung schon bei der allgemeineren Exception geschieht.
 

Neue Beiträge

Zurück