2017-02-28 35 views
-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 
+0

はスタックへようこそオーバーフロー。何を試しましたか?このサイトは、あなたのコードを書くのではなく、特定の問題に対する回答を提供するためのものです。このような変換が不可能な場合は、エラーメッセージから文字列をダブルに変換しようとしています。 "True0"を数字に変換することはできません。メソッドの先頭にブレークポイントを置き、ブレークポイントをデバッグしてどこに障害が発生しているのかを正確に確認してください。 –

+0

そのコードはあなたがおそらく望むことをするつもりはありません。それはループであり、無効な文字を見つけると終了しないので、 '_boolvalid'は上書きされ続けて、最後の文字の状態のみを表します。また、 '&'は文字列の連結で、式を結合するのではなく、 'AndAlso'を使います。最後に、ここで報告しているエラーのためにOption Strictをオンにしてください。charは決して '1,2,3 'などとなることはありません - それらは数値です – Plutonix

答えて

0

内のコードです:

If Not Integer.TryParse(txtPost.Text, intTemp) Then 
    MsgBox ... 
関連する問題