0

我有一个组支票簿列表,我想从数据库表中预先选择它。我很有趣下面的代码来选择这个,但它不起作用

表中的数据以以下格式示例存储:-

1,2,
1,5,7,
1,2,3,4,

HTML

<asp:checkboxlist id="chkBoxDaysList" runat="server">
 <asp:listitem  runat="server" value="1"  Text="Sunday" />
 <asp:listitem  runat="server" value="2" Text="Monday" />
 <asp:listitem  runat="server" value="3" Text="Tuesday" />
 <asp:listitem  runat="server" value="4" Text="Wednesday" />
 <asp:listitem  runat="server" value="5" Text="Thrusday" />
 <asp:listitem  runat="server" value="6" Text="Friday" />
 <asp:listitem  runat="server" value="7" Text="Saturday" />
</asp:checkboxlist>

基于先前保存的数据预选复选框的 C# 代码

公共无效 getSelectedDays() { IDataReader 博士;

String strSqlDays = "SELECT * FROM EventCalender WHERE rowID = 6";
DataSet ds = new DataSet();
ds = DataProvider.Connect_Select(strSqlDays);
dr = ds.Tables[0].CreateDataReader();

string[] s = new string[50];
while (dr.Read())
{
    s = dr["EventDays"].ToString().Split(',');

}
int length = s.Length;
for (int i = 0; i <= s.Length - 1; i++)
{
    string cntry = s[i];
    for (int j = 0; j <= chkBoxDaysList.Items.Count - 1; j++)
    {
        if (chkBoxDaysList.Items[j].Text == s[i])
        {
            chkBoxDaysList.Items[j].Selected = true;
            break;
        }
    }
}

}

现在代码不会产生任何错误,但也没有选择任何复选框

4

2 回答 2

0

您正在检查带有 DB 值的复选框文本。请使用数据库记录中的值检查复选框列表的值。更正的代码如下所示-->

 if (chkBoxDaysList.Items[j].Value == s[i])
        {
            chkBoxDaysList.Items[j].Selected = true;
            break;
        }
于 2012-05-28T05:34:00.263 回答
0
protected void Button2_Click(object sender, EventArgs e)
    {
        try
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from empreg where empid=@empid", con);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@empid", txtid.Text);
            SqlDataAdapter adpt = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            adpt.Fill(ds);
            if (ds.Tables[0].Rows.Count > 0)
            {
                IDataReader dr = ds.Tables[0].CreateDataReader();
                txtfname.Text = ds.Tables[0].Rows[0][1].ToString();
                txtlname.Text = ds.Tables[0].Rows[0][2].ToString();
                RadioButtonList1.SelectedValue = ds.Tables[0].Rows[0][3].ToString();
                txtdob.Text = ds.Tables[0].Rows[0][4].ToString();
                txtdoj.Text = ds.Tables[0].Rows[0][5].ToString();
                txtsal.Text = ds.Tables[0].Rows[0][6].ToString();
                txtadd.Text = ds.Tables[0].Rows[0][7].ToString();
                DropDownList1.SelectedItem.Text = ds.Tables[0].Rows[0][8].ToString();
                //checkbox1
                string[] b = new string[50];
                while (dr.Read())
                {
                    b = dr["Dept"].ToString().Split(',');
                }

                for (int i = 0; i <= b.Length - 1; i++)
                {
                    foreach (ListItem item in this.CheckBoxList1.Items)
                        if (item.Value == b[i])
                        {
                            item.Selected = true;
                            i++;
                        }
                }
于 2012-10-05T12:03:49.243 回答