-1
フォーム内のユーザー入力から郵便番号を検証しようとしています。このクラスを使用して、私はすべての文字を検索し、それをチェックしようとしています。フォーム内を呼び出すには、後者のコードを使用しました。 私が抱えている問題は、エラーがポップアップであるということです。VB.NETで郵便番号を検証する方法は?
"文字列" True0 "からタイプ 'Double'への変換は無効です。
Function VaidatePostCode(ByVal Post As String) As String
For C = 0 To Len(Post) - 1
If Char.IsLetter(Post(C)) & C = 0 Then
_boolvalid = True
Else
_boolvalid = False
End If
If Char.IsLetter(Post(C)) & C = 1 Then
_boolvalid = True
Else
_boolvalid = False
End If
If Char.IsNumber(Post(C)) & C = 2 Then
_boolvalid = True
Else
_boolvalid = False
End If
If Char.IsWhiteSpace(Post(C)) & C = 3 Then
_boolvalid = True
Else
_boolvalid = False
End If
If Char.IsNumber(Post(C)) & C = 4 Then
_boolvalid = True
Else
_boolvalid = False
End If
If Char.IsLetter(Post(C)) & C = 5 Then
_boolvalid = True
Else
_boolvalid = False
End If
If Char.IsLetter(Post(C)) & C = 6 Then
_boolvalid = True
Else
_boolvalid = False
End If
Next C
Return _boolvalid
End Function
この値は、あなたがこのようInteger.TryParse使用できる数であるかどうかを確認するにはVB.NETのフォーム
Private Sub txtPost_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPost.Validated
If myVal.VaidatePostCode(txtPost.Text) = False Then
MsgBox("Please enter correct data format into postcode")
End If
End Sub
はスタックへようこそオーバーフロー。何を試しましたか?このサイトは、あなたのコードを書くのではなく、特定の問題に対する回答を提供するためのものです。このような変換が不可能な場合は、エラーメッセージから文字列をダブルに変換しようとしています。 "True0"を数字に変換することはできません。メソッドの先頭にブレークポイントを置き、ブレークポイントをデバッグしてどこに障害が発生しているのかを正確に確認してください。 –
そのコードはあなたがおそらく望むことをするつもりはありません。それはループであり、無効な文字を見つけると終了しないので、 '_boolvalid'は上書きされ続けて、最後の文字の状態のみを表します。また、 '&'は文字列の連結で、式を結合するのではなく、 'AndAlso'を使います。最後に、ここで報告しているエラーのためにOption Strictをオンにしてください。charは決して '1,2,3 'などとなることはありません - それらは数値です – Plutonix