2017-09-27 17 views
0

ユーザーが料理を注文したときにデータをデータベースに保存するレストラン形式を作成しようとしています。ユーザーがもう一度来て姓と名字を入力すると、食品やピックアップオプションなどの他のデータが自動的に提出されます。食べ物には、私はチェックボックスを持っています。ここでc#.netの単一列データから複数のチェックボックスを選択する方法

は、挿入コードは次のとおりです。

string strCheckValue = ""; 
if (CheckBox1.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox1.Text; 
} 
if (CheckBox2.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox2.Text; 
} 
if (CheckBox3.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox3.Text; 
} 
if (CheckBox4.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox4.Text; 
} 
if (CheckBox5.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox5.Text; 
} 
if (CheckBox6.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox6.Text; 
} 
if (CheckBox7.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox7.Text; 
} 

strCheckValueは、データベースに格納され、このような結果与えている: 、サモサ、ビリヤニ、ナン

今、私はすべて選択したいです彼が私の覚えているボタンを押すと、食べ物を注文する前にユーザーが選択した食品アイテム。私のコードがあることについては

//checkbox value display 
CheckBox1.Checked = false; 
CheckBox2.Checked = false; 
CheckBox3.Checked = false; 
CheckBox4.Checked = false; 
CheckBox5.Checked = false; 
CheckBox6.Checked = false; 
CheckBox7.Checked = false; 
string aa = dr["ctm_food"].ToString(); 
string[] a = aa.Split(','); 
Label10.Text = a[2].ToString(); 
foreach (Control cc in this.Controls) 
{ 
    if(cc is CheckBox) 
    { 
     CheckBox b = (CheckBox)cc; 
     for(int j=1; j<a.Length; j++) 
     { 
      if (a[j].ToString() == b.Text) 
      { 
       b.Checked = true; 
      } 
     } 
    } 
} 

label10で、私は、ユーザーが注文した食べ物を見ることができます。しかし、チェックボックスは選択されていません。このエクササイズを完了するための正しいアプローチは何でしょうか?

+0

どのASP.NETを使用していますか? –

+0

いつ実行されるコードですか?ユーザーの選択肢を覚えておきたいときは?あなたはこのコードでどんな問題を抱えていますか? –

+0

4.0 @ジョンケネディ –

答えて

0

this.Controlsにはあなたのチェックボックスは含まれていません。また、すべてのチェックボックスの参照を1か所にまとめておくと、コードが簡単になります。

CheckBox[] checkboxes = new CheckBox[] { 
    CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7 
}; 

string aa = dr["ctm_food"].ToString(); 
string[] a = aa.Split(','); 
Label10.Text = a[2].ToString(); 

foreach (CheckBox b in checkboxes) { 
    b.Checked = false; 
    for (int j = 1; j < a.Length; j++) { 
     if (a[j].ToString() == b.Text) { 
      b.Checked = true; 
     } 
    } 
} 
関連する問題