0

営業日を表すエントリ (1 または 0) 1 と休日を表す 0 を含む、営業日という名前の列で構成されるカレンダー テーブルがあります。データベースからデータを取得するときに、休日がチェックされているチェックボックスとその他のチェックされていないチェックボックスを表示したいと思います。たとえば、返される 6 月のデータが 1111100 の場合、最初の 5 つのチェック ボックスをオフにし、次に 2 つのチェック ボックスをオンにするというように、6 月の 30 日間を指定します。私の Web ページには、入力として年と月を取る 2 つのテキスト ボックスがあります。検索すると、その月のチェック ボックスが表示されます。この問題のコードを教えてください。試したコードは次のとおりです。

public void search(オブジェクト送信者, EventArgs e) {試してください{

            string cnnString = "Server=localhost;Port=3307;Database=leavesystem;Uid=root;Pwd=ashish";
            MySqlConnection cnx = new MySqlConnection(cnnString);
            cnx.Open();
            string cmdText = "Select WorkingDays from calender where Year = '" + year.Value +"' and Month = '" + month.Value +"' ";
            MySqlCommand cmd = new MySqlCommand(cmdText, cnx);
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            DataSet ds = new DataSet();
            adapter.SelectCommand = cmd;
            string a[] = adapter.Fill(ds);

              int size = a.Length;
              CheckBox[] cbl = new CheckBox[size];
                   for (int i = 0; i < a.Length; i++)
                      {
                          cbl[i] = new CheckBox();
                          cbl[i].Text = a[i].ToString();
                          this.Form.Controls.Add(cbl[i]);  
                      } 
               }}
        catch (MySqlException ex)
        {

            string msg = "Insert Error: 'Error ' ";
            msg += ex.Message;
            throw new Exception(msg);
        }
    }

今、私はエラーが発生しています。まず、文字列配列 a の adapter.fill 値を取得できず、先のコードが機能しません。誰でも私を助けることができますか?

4

2 に答える 2

0

次のように作成できますCheckBoxList

<asp:CheckBoxList ID="checks" runat="server" RepeatDirection="Horizontal"/>

次に、コードビハインドで:

char[] a=adapter.Fill(ds).ToString().ToCharArray();
ListItem[] items=new ListItem[a.Count()];
int i=0;
foreach (char m in a){
    items[i]=new ListItem(m.ToString());
    if(m=='0')
       items[i].Selected=true;
    else
       items[i].Selected=false;
    checks.Items.Add(items[i]);
    i++;
}
于 2013-06-24T06:37:56.827 に答える