0

我有一个日历表,其中包含一个名为工作日的列,其中包含条目(1 或 0)1 代表工作日,0 代表假期。现在,当我从数据库中获取数据时,我想显示带有已选中的假期和未选中的其他复选框的复选框。例如,如果 6 月份返回的数据为 1111100...,则应取消选中前 5 个复选框,然后选中 2 个复选框,依此类推,持续 6 月的 30 天。在我的网页中,我有 2 个输入年份和月份的文本框。当我搜索该月的复选框时,应该会出现。你能告诉我这个问题的代码吗?按照我试过的代码。

公共无效搜索(对象发送者,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

您首先需要将您的数据库表转换为这样的字符串数组。

c#中如何将DataTable中的值转换为字符串数组

然后编写以下代码:

<asp:CheckBoxList ID="checkList" runat="server"/>

后面的代码:

for (int i = 0; i < a.Length; i++)
   checks.Items.Add(new ListItem(a[i]));
于 2013-06-24T06:59:07.627 回答
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 回答