2016-08-16 8 views
-2

"追加"ボタンをクリックすると検証が必要なテキストボックスがあります。値のテキストボックスを検証する必要があります

他の2つのチェックがコードにない場合、最初のチェックは正常に機能します。

テキストボックスに値を入力すると、下の2つのチェックが正常に行われます。しかし、3つのチェックがすべてある場合、値がない場合、

"入力文字列が正しい形式ではありません"というエラーが返されます。

if (txtAge.Text == "") 
{ 
    message += "<br>Please fill in your Age.</br>"; 
} 
if (Convert.ToInt32(txtAge.Text) > 120) 
{ 
    message += "<br>Age cannot be greater than 120</br>"; 
} 
if (Convert.ToInt32(txtAge.Text) < 6) 
{ 
    message += "<br>Age cannot be less than 6</br>"; 
} 
+2

if-elseを使用しないと、問題が解決される –

答えて

5

あなたが入力文字列が空または有効な数値であることを確信しているなら、あなたが使用することができます。

 if (txtAge.Text == "") 
     { 
      message += "<br>Please fill in your Age.</br>"; 
     } 
     else{ 
      if (Convert.ToInt32(txtAge.Text) > 120) 
      { 
       message += "<br>Age cannot be greater than 120</br>"; 
      } 
      if (Convert.ToInt32(txtAge.Text) < 6) 
      { 
       message += "<br>Age cannot be less than 6</br>"; 
      } 
     } 

そうでないあなたも、その文字列が有効な数値であることを保証するためのint.TryParseメソッドを使用する必要があります。

2

空の文字列をInt32に変換することはできません。あなたは(あなたがさえた値の2倍を解析する必要はありません)の代わりにint.TryParseを使用する必要があります。

int age; 
if (!int.TryParse(txtAge.Text, out age)) 
    message += "<br>Age is not a number!</br>"; 
else if (age > 120) 
{ 
    message += "<br>Age cannot be greater than 120</br>"; 
} 
else if (age < 6) 
{ 
    message += "<br>Age cannot be less than 6</br>"; 
} 

そしてelse ifを使用し、それがすべてでは数ではない場合、それは中だならば、それはチェックしても意味がありませんので、特定の範囲。

関連する問題