ADI@345 Ответов: 1

Как вставить значение флажка в базу данных на определенную дату.


Я ddont хочу использовать checkboxlist , потому что в checkboxlist все значения вставляются в один столбец , я использую флажок 6, если мы выберем флажок 2-3 в любой дате, 2-3 значения должны быть вставлены в базу данных

Что я уже пробовал:

Дизайн :-
                     <table class="table">
                    <tr><td> <asp:CheckBox ID="CheckBox1" runat="server"   AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"  />Select All</td> </tr>
                            <tr><td>
                                <asp:CheckBox ID="CheckBox2" runat="server"  Text="12:45PM"/></td> </tr>

                         <tr><td>   <asp:CheckBox ID="CheckBox3" runat="server"  Text="1:00PM" /></td>  </tr>
        
                         <tr><td>   <asp:CheckBox ID="CheckBox4" runat="server"  Text="1:15PM" /></td> </tr>

                         <tr><td>   <asp:CheckBox ID="CheckBox5" runat="server"   Text="6:00PM"/></td> </tr>

                         <tr><td>   <asp:CheckBox ID="CheckBox6" runat="server"   Text="6:15PM"/></td></tr>
                 
                         <tr><td>   <asp:CheckBox ID="CheckBox7" runat="server"  Text="6:30PM" /></td></tr>



<tr><td>  
    <asp:Button ID="btnblock" runat="server" Text="Block" Height="34px" Width="74px" OnClick="btnblock_Click" /></td></tr>  </table>
                    </div>
             </div>         
    </div>



код:

{
    using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
    using (SqlCommand cmm = new SqlCommand())
    {
        cmm.Connection = cnn;
        cmm.CommandType = CommandType.Text;
        cmm.CommandText = "INSERT INTO[consult_slotblock]([blockdate],[slotime])" + "VALUES(@blockdate,@slotime)";
        cmm.Parameters.AddWithValue("@blockdate", TextBox1.Text.Trim());


        if (CheckBox2.Checked == true)
        {
            cmm.Parameters.AddWithValue("@slotime", CheckBox2.Text);

        }
          if (CheckBox3.Checked == true)
        {
            cmm.Parameters.AddWithValue("@slotime", CheckBox3.Text);

        }
         if (CheckBox4.Checked == true)
        {
            cmm.Parameters.AddWithValue("@slotime", CheckBox4.Text);

        }
         if (CheckBox5.Checked == true)
        {
            cmm.Parameters.AddWithValue("@slotime", CheckBox5.Text);

        }
         if (CheckBox6.Checked == true)
        {
            cmm.Parameters.AddWithValue("@slotime", CheckBox6.Text);

        }

         if (CheckBox7.Checked == true)
        {
            cmm.Parameters.AddWithValue("@slotime", CheckBox7.Text);

        }

        cnn.Open();
        cmm.ExecuteNonQuery();
        ScriptManager.RegisterStartupScript(this, GetType(), "Success", "alert('Information Save Successfully.');", true);
        cnn.Close();

    }
}

CHill60

Ваш вопрос не очень ясен. Вы имеете в виду, что вы должны вставлять несколько строк в базу данных, если установлено более одного флажка?

ADI@345

да я должен вставить несколько для отмеченного флажка

1 Ответов

Рейтинг:
12

Maciej Los

Если вы хотите вставить значения отмеченных флажков в один столбец (несколько строк), вы должны выполнить цикл через коллекцию флажков и вызвать подпрограмму insert для каждого отмеченного флажка. Итак, в псевдокоде:

foreach(checkbox in checkboxlist)
{
    if (checkbox.Checked)
    {
        //insert subroutine here!
    }
}


В случае, если вы хотите хранить значения в одном столбце (одной строке) в виде строки, разделенной запятыми ("value1,value2,etc") вы должны выполнить цикл через коллекцию флажков и извлечь значения проверенных флажков в строку и вызвать подпрограмму insert в конце. В псевдокоде:
StringBuilder sb =new StringBuilder();
foreach(checkbox in checkboxlist)
{
    if (checkbox.Checked)
    {
        sb.Add(checkbox.Value + ",");
    }
}
//here insert subroutine


ADI@345

Да , этот код работает для меня ... спасибо, сэр..

Maciej Los

Всегда пожалуйста.
Овации,
Мацей