4
我有一个循环遍历checkboxlist中的选择。问题是循环触发插入语句两次为每个选择。所以如果用户选中一个框,它会插入2行。如果用户选择3个框,则插入6行等等。我如何确保每次选择只触发一次插入?循环触发插入语句两次
protected void btn_test_Click(object sender, EventArgs e) {
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Insert into t_ap_line_setup (line,date) values (@line,getdate())";
cmd.Connection = this.sqlConnection1;
this.sqlConnection1.Open();
foreach (ListItem li in lines_list.Items) {
if (li.Selected == true) {
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@line", li.Text);
cmd.ExecuteNonQuery();
}
}
this.sqlConnection1.Close();
}
当你运行代码时,'lines_list.Items'的计数是多少? – MyCodeSucks
看起来不像循环运行两次。我怀疑你点击处理程序是发射两次。也许重复的事件订阅,或者其他。 – vcsjones
只是尝试'如果(li.Selected)'不'如果(li.Selected == true)' – sajanyamaha