使用asp.net将复选框值保存到数据库

本文关键字:保存 数据库 复选框 asp net 使用 | 更新日期: 2023-09-27 18:03:41

SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand("insert into reg (name,num,gender,qual) values
(@name,@num,@gender,@qual)", con);
        cmd.Parameters.AddWithValue("@name", TextBox1.Text);
        cmd.Parameters.AddWithValue("@num", TextBox2.Text);
        cmd.Parameters.AddWithValue("@gender",     
 RadioButtonList1.SelectedItem.ToString());
        for (int i = 0; i < CheckBoxList1.Items.Count - 1;i++ )
        {
            if(CheckBoxList1.Items[1].Selected)
            {
                string var = string.Empty;
                var += CheckBoxList1.Items[1].Text.ToString();
                cmd.Parameters.AddWithValue("@qual",var);
            }
        }
        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
            Response.Write("<script language='javascript'>alert(
               'record has been added');</script>");
        }
        catch (Exception er)
        {
            Response.Write("<script language='javascript'>alert(
          'conncetion error');</script>");
        }
        finally
        {
            con.Close();
        }

我是asp.net的初学者。我不知道如何将复选框值保存到数据库。在上面的代码中,它只保存最后一个值。

使用asp.net将复选框值保存到数据库

你是通过循环迭代,但只比较值1所有的时间我已经改变1到I。我认为你只需要收集一次值。为了实现这一点,我移动了cmd.Parameters.AddWithValue("@qual",s);语句退出for循环

注意:我用'分隔值,'我不知道这是你的业务需要与否

 string s;
 for (int i = 0; i < CheckBoxList1.Items.Count - 1;i++ )
    {
        if(CheckBoxList1.Items[i].Selected)//changed 1 to i 
            s += CheckBoxList1.Items[i].Text.ToString() + ","; //changed 1 to i
    }
 cmd.Parameters.AddWithValue("@qual",s);

这是因为您只在for循环之外执行了一次命令。

如果你将Execute查询移到for循环中,它应该可以工作。

请注意,这将修复您的代码,但它既不安全,也不是最优的。