2017-04-27 4 views
0

私のWindowsアプリケーションでは、男性、女性、その他の3つのラジオボタンがあります。 男性のラジオボタンをチェックしたとき、変数に1の値を代入し、その値をSQLテーブルに挿入した後に割り当てました。しかし、私はチェックされた変更イベントを使用しました。私はシステムフォーマットの例外を取得しています。私は以下のコードを使ってこれを助けてください。性別ラジオボタンがチェックされたときにデータベースに値を格納する方法

if (rbmale.Checked) 
{ 
    genders = 1; 

} 
else if (rbfemale.Checked) 
{ 
    genders = 2; 

} 
else if(rbothers.Checked) 
{ 

    genders = 3; 
} 

private void rbmale_CheckedChanged(object sender, EventArgs e) 
{ 
    if (((RadioButton)sender).Checked == true) 
     genders = Convert.ToInt32(((RadioButton)sender).Text.ToString()); 
} 

private void rbfemale_CheckedChanged(object sender, EventArgs e) 
{ 
    if (((RadioButton)sender).Checked == true) 
     genders = Convert.ToInt32(((RadioButton)sender).Text.ToString()); 
} 

private void rbothers_CheckedChanged(object sender, EventArgs e) 
{ 
    if (((RadioButton)sender).Checked == true) 
     genders = Convert.ToInt32(((RadioButton)sender).Text.ToString()); 
} 
+2

ラジオボタンにテキストプロパティがあるのはなぜですか?ラジオボタンはブール(オンまたはオフ)です。 rbmale_CheckedChangedはrbmailラジオボタンでのみ呼び出すことができるので、genders = 1(など)を設定してください。 – Neil

答えて

0

最初に確認したことは、すべてのラジオのイベントが変更されていることを意味しています。それだけを設定します 2番目のコードは実行されますか?これは、いくつかの上で実行されます場合は1、残りは未チェックの取得チェックがあるのであれば変更チェックする必要はないかもしれないので、1つだけ実行されている時にこれらとして十分

if (rbmale.Checked) 
     { 
      genders = 1; 

     } 
     else if (rbfemale.Checked) 
     { 
      genders = 2; 

     } 
    else if(rbothers.Checked) 
     { 

      genders = 3; 
     } 

よりも、このコードよりあるラジオボタンをクリックして提出しますが、もしあなたがチェックしたコードが変更された場合は、あなたがシングルイベントですべてのチェックチェンジを達成しようとしているようです。ラジオボタンのタグプロパティに数値を入れ、すべてのラジオボタンにシングルイベントを割り当てます。

private void rbgender_CheckedChanged(object sender, EventArgs e) 
    { 
     RadioButton clicked = (RadioButton)sender; 
     if(clicked.Checked) 
      genders = Convert.ToInt32(clicked.Tag); 
    } 
0

ラジオボタンのテキストを整数に変換しているため、システムフォーマットの例外が発生しています。私は、3つのラジオボタンのテキストが "男性"、 "女性"、 "その他" - 整数に変換できないと仮定します。

関連する問題