Frage

Erstens danke, dass Sie sich die Zeit genommen haben, meinen Beitrag zu lesen. Ich habe eine Frage, die für einige ein Neuling Kuchen sein kann.

Ich füge Daten zu einer Datenbanktabelle mithilfe von Entity Framework hinzu. Beim Hinzufügen eines doppelten Primärschlüssels erhalte ich eine Ausnahme in Innerexception.message mit der Aufschrift "Verstöße gegen die primäre Schlüsselbeschränkung" pk_studentid ". Der doppelte Schlüssel kann nicht in Objekt 'dbo.students' eingefügt werden. Die Aussage wurde beendet."

Ich möchte jedoch diese Fehlermeldung für den Endbenutzer umformulieren, aber auch diese genaue Nachricht mit dem Tabellennamen und dem Spaltennamen für später in meinen Protokollen speichern. Im Wesentlichen möchte ich die Fehlermeldung in "Sie können keinen doppelten Eintrag für die Identifikationsnummer der Studentin umformulieren. Bitte geben Sie einen neuen Wert ein."

Wie kann ich das machen?

Ich habe versucht, von System.data.UpdateException zu erben und eine IF -Überprüfung zu geben, um zu sehen, was die Innerexception.message liest, und dann entsprechend zu ändern. Das hat nicht funktioniert.

Vielen Dank,

War es hilfreich?

Lösung

Ich denke, das wird tun, was Sie wollen.

        Try
            'your code
        Catch ex As Exception
            'store the ex.Message where you want

            Throw New Exception("Your custom message here.")
        End Try

Beispiel:

Private Sub uiFunction()
    Dim errorMessage As String
    Try

        'a call to a BLL function/sub that could cause an exception
    Catch ex As Exception
        errorMessage = ex.Message() 'ex.Message() = "Your custom message."
    End Try
End Sub

Public Sub BLLFunction()
    Try
        'run your code that could cause an exception
    Catch ex As Exception
        Throw New Exception("Your custom message.")
    End Try
End Sub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top