2011-01-21 101 views
0

これは比較的一般的なエラーですが、私はカスタムレポートをvb.netまたはC#を使用して記述することができるアプリケーションで作業しています。エラー処理は非常に貧弱で、自分自身を追加するのに十分な知識はありません(もし可能であれば)。呼び出しのターゲットによって例外がスローされました

私のコードは、姓、ファーストネームと書式設定されたテキストボックスに格納されている値を取得し、カンマの後のすべての文字を切り捨てます。この値LastNameは、レポートの新しいテキストボックスに配置されます。ここに私のコードは次のとおりです。私は私のストリングの文字数を設定するlastNameCommaIndexを使用する場合

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 

エラーが発生します。私はそれを番号で置き換えると、レポートは適切に発行されます。あなたはそれが

例えば、これは非常に簡単になりますstring.splitを使用する場合があります

答えて

0

ここで

If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then 

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

    End If 

あなたは.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 
+0

OKグレートを持っていない場合は、IsNullOrWriteSpaceを書く方法です!あなたが見せてくれたとおりに試してみましたが、.IsNullOrWhiteSpace()がStringのメンバーではないというエラーが発生しました。私はこれがアプリケーションの.NETサポートの未知のバージョンの制限かもしれないと思う。ですから、値が常に存在するので、Ifステートメントの文脈の外で.splitコードを使用しました。完璧に動作します。ありがとう! – fryeguy

+0

@fryeguyは、4.0を使用していない場合は書き込む方法を追加しました –

関連する問題