我需要将复选框列表中的选定值输入到数据库中表的多行中。
我的代码是:
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();
}
}
}
但是这段代码不起作用。
我没有收到任何错误,但未插入数据。
答案 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);
...
...