从Database中检索CheckboxList值

时间:2014-12-12 14:08:05

标签: c# sql asp.net database checkboxlist

我已经尝试过来自各地的代码,但无法正常工作......

我将CheckBoxList值保存在数据库中。我想要的是从数据库中检索值并获取相应的CheckBox List项。

设计页面中的代码是:

<asp:CheckBoxList ID="CheckBoxList1" runat="server">
<asp:ListItem Value="1">Sales</asp:ListItem>
<asp:ListItem Value="2">Office & Administration</asp:ListItem>
<asp:ListItem Value="3">Domestic Help</asp:ListItem>
<asp:ListItem Value="4">Education & Training</asp:ListItem>
<asp:ListItem Value="5">Accounting and Finance</asp:ListItem>
<asp:ListItem Value="6">Hospitality and Tourism</asp:ListItem>
<asp:ListItem Value="7">Computer and IT</asp:ListItem>
<asp:ListItem Value="8">Customer Service</asp:ListItem>
<asp:ListItem Value="9">Logistics and Transportation</asp:ListItem>
<asp:ListItem Value="10">Healthcare</asp:ListItem>
<asp:ListItem Value="11">Food and Beverage</asp:ListItem>
<asp:ListItem Value="12">Marketing, Media & Communication</asp:ListItem>
<asp:ListItem Value="13">Construction & Architecture</asp:ListItem>
<asp:ListItem Value="14">Human Resources</asp:ListItem>
<asp:ListItem Value="15">Others</asp:ListItem>
</asp:CheckBoxList>

所以我使用此代码将CheckBoxList值保存到数据库中。 工作精细......

 for (int j = 0; j < CheckBoxList1.Items.Count - 1; j++)
    {
        if (CheckBoxList1.Items[j].Selected == true)
        {
            string r = CheckBoxList1.Items[j].Value.ToString();
            SqlConnection myconn1;
            SqlCommand cmd1;
            string sql1;
            myconn1 = new SqlConnection(WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());
            myconn1.Open();
            sql1 = "insert into interests(FK_ic_id,FK_is_id)values(@FK_ic_id,@FK_is_id)";
            cmd1 = new SqlCommand(sql1, myconn1);

            cmd1.Parameters.AddWithValue("@FK_is_id", ssid);
            cmd1.Parameters.AddWithValue("@FK_ic_id", r);
            cmd1.ExecuteNonQuery();
            myconn1.Close();
        }
    }

因此,表格是“兴趣”,类别名称(兴趣列表)有一个单独的表格。数据保存如下:

  • 用户1(FK_IS_ID),兴趣-2(FK_IC_ID)
  • 用户1(FK_IS_ID),兴趣-3(FK_IC_ID)
  • 用户-2(FK_IS_ID),兴趣-4(FK_IC_ID)
  • 用户-2(FK_IS_ID),兴趣-2(FK_IC_ID)

兴趣2-3表示来自&#39;类别&#39;表,其中:

  • category-1(c_id),Sales(c_name)
  • category-2(c_id),Marketing(c_name)
  • category-3(c_id),IT(c_name)

所以现在我想要的是,在页面加载功能上,要重新填充的复选框列表,或根据用户(SID)和他的兴趣(c_id / FK_IC_ID)填充。需要在页面加载功能上选择checkboxlist中的项目。需要检索多个兴趣。

1 个答案:

答案 0 :(得分:1)

您必须将核对表列表绑定到数据源:

    SqlDataAdapter da = 
            new SqlDataAdapter("SELECT c_id,c_name FROM category",
            new SqlConnection
           (WebConfigurationManager.ConnectionStrings
           ["ApplicationServices"].ToString())); 
            DataSet ds = new DataSet();
            da.Fill(ds);
            checkedListBox1.DataSource = ds;
            checkedListBox1.SelectedValue = "c_id";
            checkedListBox1.SelectedItem = "c_name ";