Исключение было сгенерировано целью вызова - PullRequest
0 голосов
/ 22 января 2011

Я знаю, что это довольно распространенная ошибка, но я работаю в приложении, которое позволяет создавать собственные отчеты с использованием vb.net или C # для сценариев.Обработка ошибок очень плохая, и я не обладаю достаточными знаниями, чтобы добавить свой собственный (если это возможно).

Мой код просто получает значение, которое хранится в текстовом поле в отчете, отформатированном как LastName, FirstName и усекает все символы после запятой.Это значение LastName помещается в новое текстовое поле отчета.Вот мой код:

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

Ошибка возникает, когда я использую lastNameCommaIndex, чтобы установить количество символов в моей подстроке.Если я заменю его на номер, отчет будет опубликован должным образом.

1 Ответ

0 голосов
/ 22 января 2011

Возможно, вы захотите использовать string.split , это сделает это намного проще

например

   If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then

        lastName = lastNameFirstName.Split(",".ToCharArray())(0)

    End If

Вот как вы пишете IsNullOrWriteSpace, если вы этого не сделаетеесть .net 4.0

Function IsNullOrWhiteSpace(ByVal s As String) As Boolean

    If s Is Nothing Then
        Return True
    End If

    Return s.Trim() = String.Empty

End Function
...