4

チェックボックスリストの選択を繰り返すループがあります。問題は、選択ごとにループが挿入ステートメントを 2 回起動することです。したがって、ユーザーが 1 つのボックスをオンにすると、2 行が挿入されます。ユーザーが 3 つのボックスを選択すると、6 行が挿入されます。選択ごとに1回だけ挿入を起動するにはどうすればよいですか??

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();
}
4

1 に答える 1

1

ループが 2 回実行されているようには見えません。イベント サブスクリプションが重複しているため、クリック ハンドラが 2 回起動していると思われます。

于 2012-12-05T18:08:08.767 に答える