1

を作成しましたがLabelsCheckBoxesチェック後に CheckBox の値を 'on' または 'off' の 0 または 1 として SQL Server に保存したいのですが.....どうすればよいですか??

   protected void EventDuration_DDL_SelectedIndexChanged(object sender, EventArgs e)
    {
        con.Open();
        DateTime dt = DateTime.Parse(StartDate_TB.Text);

        int n = Int32.Parse(EventDuration_DDL.SelectedItem.ToString());
        for (int i = 0; i < n; i++)
        {

            Label NewLabel = new Label();
            NewLabel.ID = "Label" + i;
            var eventDate = dt.AddDays(i);
            NewLabel.Text = eventDate.ToLongDateString();

            CheckBox newcheck = new CheckBox();
            newcheck.ID = "CheckBox" + i;
            newcheck.AutoPostBack = true;
            newcheck.CausesValidation = false;
            newcheck.CheckedChanged += new EventHandler(newcheck_CheckedChanged);
            this.Labeldiv.Controls.Add(new LiteralControl("<span class='h1size'>"));
            this.Labeldiv.Controls.Add(NewLabel);
            this.Labeldiv.Controls.Add(new LiteralControl("</span>"));
            this.Labeldiv.Controls.Add(new LiteralControl("<div class='make-switch pull-right' data-on='info'>"));
            this.Labeldiv.Controls.Add(newcheck);
            this.Labeldiv.Controls.Add(new LiteralControl("</div>"));
            this.Labeldiv.Controls.Add(new LiteralControl("<br/>"));
        }

        con.Close();
    }

    void newcheck_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox currentCheckbox = sender as CheckBox;
        string extractInteger = Regex.Match(currentCheckbox.ID, @"\d+").Value;
        Label currentlabel = (Label)Labeldiv.FindControl("Label" + extractInteger);
        con.Open();

        int n = Int32.Parse(EventDuration_DDL.SelectedItem.ToString());
        for (int i = 0; i < n; i++)
        {
            SqlCommand cmd = new SqlCommand("insert into EventDays(EventDay,EventStatus)values(@EventDay,@EventStatus)", con);
            cmd.Parameters.AddWithValue("@EventDay", currentlabel.Text);
            cmd.Parameters.AddWithValue("@EventStatus", currentCheckbox.Checked ? "true" : "false");
            cmd.ExecuteNonQuery();

        }
        con.Close();
    }

チェックボックスは、ddl の選択に基づいて作成する必要があります....6 を選択すると、6 つのチェックボックスを作成する必要があります。その後、チェックボックスをオンにすると、値が SQL サーバーに保存される必要があります....

値はSQLサーバーに保存されませんでした......

4

1 に答える 1

0

が数値列であると仮定するEventStatusと、私が考えることができる最も怠惰な解決策は

cmd2.Parameters.AddWithValue("@EventStatus", newcheck.Checked ? 1 : 0);
于 2013-11-14T11:52:40.723 に答える