Une exception a été levée par la cible d'un appel
-
16-10-2019 - |
Question
Je sais que cela est une erreur relativement commun, mais je travaille dans une application qui permet des rapports personnalisés à écrire en utilisant vb.net ou C # pour les scripts. La gestion des erreurs est très pauvre et je ne suis pas assez d'ajouter mon knowledgable propre (s'il est même possible).
Mon code récupère simplement une valeur qui est stockée dans une zone de texte sur le rapport formaté comme nom, prénom et tronque tous les caractères après la virgule. Cette valeur LastName est placé dans une nouvelle zone de texte sur le rapport. Voici mon 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
L'erreur se produit lorsque j'utilise lastNameCommaIndex pour définir le nombre de caractères dans mon sous-chaîne. Si je le remplace par un numéro du rapport est publié correctement.
La solution
Vous pouvez utiliser string.split il fera ce beaucoup plus facile
par exemple.
If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then
lastName = lastNameFirstName.Split(",".ToCharArray())(0)
End If
Voici comment vous écrivez IsNullOrWriteSpace si vous n'avez pas .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