在数据库的不同行中插入多个选择复选框列表值

时间:2014-06-23 03:24:04

标签: c# asp.net sql-server

我需要将复选框列表中的选定值输入到数据库中表的多行中。

我的代码是:

SqlConnection con1 = new SqlConnection(cs);

string com1 = "INSERT INTO TVC_booking (TVC_booking_lId ,TVC_booking_date, TVC_booking_start_time,TVC_booking_end_time , TVC_booking_subject ,TVC_booking_description,TVC_booking_bookingId,TVC_booking_chairperson, TVC_booking_client,TVC_booking_currentdt,TVC_booking_status)"
              + "VALUES (@lid, @dt, @stime, @etime, @sub, @dsc, @bid, @cp, @cl, @cdt, @stat)";

for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
    if (CheckBoxList1.Items[i].Selected == true)
    {
        using (SqlCommand cmd1 = new SqlCommand(com1, con1))
        {
            cmd1.Parameters.AddWithValue("lid", CheckBoxList1.Items[i].ToString());
            cmd1.Parameters.AddWithValue("dt",field_date);
            cmd1.Parameters.AddWithValue("stime", field_stime);
            cmd1.Parameters.AddWithValue("etime", endtime);
            cmd1.Parameters.AddWithValue("sub", TextBox_sub.Text);
            cmd1.Parameters.AddWithValue("dsc", TextBox_des.Text);
            cmd1.Parameters.AddWithValue("bid", str);
            cmd1.Parameters.AddWithValue("cp", TextBox_cp.Text);
            cmd1.Parameters.AddWithValue("cl", TextBox_client.Text);
            cmd1.Parameters.AddWithValue("cdt", DateTime.Now);
            cmd1.Parameters.AddWithValue("stat", 1);

            con1.Open();
            cmd1.ExecuteNonQuery();
            con1.Close();
        }
    }
}

但是这段代码不起作用。

我没有收到任何错误,但未插入数据。

1 个答案:

答案 0 :(得分:2)

每次我使用AddWithValue()时,我都必须在名称中加入@符号。我认为省略它会导致某种异常,但也许它不会......或者异常被吞噬。

cmd1.Parameters.AddWithValue("@lid", CheckBoxList1.Items[i]);
cmd1.Parameters.AddWithValue("@dt", field_date);
cmd1.Parameters.AddWithValue("@stime", field_stime);
cmd1.Parameters.AddWithValue("@etime", endtime);
...
...