Die Ausnahme wurde durch das Ziel eines Aufrufs ausgelöst
-
16-10-2019 - |
Frage
Ich weiß, dass dies ein relativ häufiger Fehler ist, aber ich arbeite in einer Anwendung, mit der benutzerdefinierte Berichte mit VB.NET oder C# für das Skripten geschrieben werden können. Die Fehlerbehandlung ist sehr schlecht und ich bin nicht kenntnisreich genug, um meine eigenen hinzuzufügen (wenn es überhaupt möglich ist).
Mein Code ruft einfach einen Wert ab, der in einem Textfeld in der Berichtsformatierung als gespeichert ist Nachname Vorname und schneidet alle Charaktere nach dem Komma ab. Dieser Wert Nachname wird in einem neuen Textfeld im Bericht platziert. Hier ist mein Code:
Sub Detail1_Format
Dim lastNameFirstName As String = ""
Dim lastName As String = ""
Dim lastNameCommaIndex As Integer=
'set lastNameFirstName value from data on report'
lastNameFirstName = ReportUtilities.ReturnTextBoxValue(rpt,"Detail1","txtdtr_DTOOLS_CompanyName")
'find index of first comma in lastNameFirstName string'
lastNameCommaIndex = lastNameFirstName.IndexOf(",")
'set contents of lastName using substring of lastNameFirstString'
lastName = lastNameFirstName.SubString(0, lastNameCommaIndex)
'the error happens above when I use lastNameCommaIndex'
'to set the number of characters in my substring'
'set client name textbox value using lastName'
ReportUtilities.SetTextBoxValue(rpt,"Detail1","txtdtr_CALC_ClientName",lastName)
End Sub
Der Fehler tritt auf, wenn ich LastnamecommaNDex verwende, um die Anzahl der Zeichen in meinem Substring festzulegen. Wenn ich es durch eine Nummer ersetze, wird der Bericht ordnungsgemäß veröffentlicht.
Lösung
Sie möchten vielleicht verwenden String.Split Es wird das viel einfacher machen
z.B
If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then
lastName = lastNameFirstName.Split(",".ToCharArray())(0)
End If
So schreiben Sie isnullorWritespace, wenn Sie nicht .net 4.0 haben
Function IsNullOrWhiteSpace(ByVal s As String) As Boolean
If s Is Nothing Then
Return True
End If
Return s.Trim() = String.Empty
End Function